MongoDB学习之mongoose
MongoDB介绍:
MongoDB是基于Javascript语言的数据库,存储格式是JSON,而Node也是基于JavaScript的环境(库),所以node和mongoDB的搭配能减少因为数据转换带来的时间空间开销。
Mongoose介绍:
是MongoDB的一个对象模型工具,它将数据库中的数据转换为JavaScript对象以供你在应用中使用,封装了MongoDB对文档的的一些增删改查等常用方法,
让NodeJS操作Mongodb数据库变得更加灵活简单。
预备:
一定要先开启mongodb服务,进入mongodb\bin\,执行mongod --dbpath d:\data
d:\data是存储数据的地方,通常位于mongodb安装的根目录下。
第一步,在项目里安装mongoose,并引入
// 安装
cnpm install mongoose --save
// 引入
const mongoose = require('mongoose');
第二步,连接数据库
// 连接本地的数据库
let db = mongoose.createConnection('mongodb://localhost/testmongoose');
接着:
// 设置数据类型
let monSchema = new mongoose.Schema({
name: {
type: String,
default: 'username'
},
age: {
type: Number
},
gender: {
type: String,
default: '女'
}
});
// 选择集合
let MonModel = db.model('user', monSchema);
// 模拟一个数据集
let content = {name: 'nick', age: , gender: '男'};
// 实例化对象并插入数据
let monInsert = new MonModel(content);
// 保存并关闭连接
monInsert.save((err) => {
if(err) {
console.log(err);
} else {
console.log('成功插入数据');
}
// 关闭数据库
db.close();
});
执行这个node文件,插入数据成功!
叮叮~~数据库里面有数据啦!

mongo.js完整代码:
// 引入模块
const mongoose = require('mongoose');
// 连接数据库
let db = mongoose.createConnection('mongodb://localhost/testmongoose');
// 设置数据类型
let monSchema = new mongoose.Schema({
name: {
type: String,
default: 'username'
},
age: {
type: Number
},
gender: {
type: String,
default: '女'
}
});
// 选择集合
let MonModel = db.model('user', monSchema);
// 数据集
let content = {name: 'Nick', age: 23, gender: '男'};
// 实例化对象并插入数据
let monInsert = new MonModel(content);
monInsert.save((err) => {
if(err) {
console.log(err);
} else {
console.log('成功插入数据');
}
// 关闭数据库
db.close();
});
增删改查完整代码:
// 引入模块
const mongoose = require('mongoose');
// 连接数据库
let db = mongoose.createConnection('mongodb://localhost/testmongoose');
// 设置数据类型
let monSchema = new mongoose.Schema({
name: {
type: String,
default: 'username'
},
age: {
type: Number
},
gender: {
type: String,
default: '女'
}
});
// 选择集合
let MonModel = db.model('user', monSchema); // 插入数据
function insertData () {
// 数据集
let content = {name: 'Nick', age: 23, gender: '男'};
// 实例化对象并插入数据
let monInsert = new MonModel(content);
monInsert.save((err) => {
if(err) {
console.log(err);
} else {
console.log('成功插入数据');
}
// 关闭数据库
db.close();
});
} // 删除数据
function deleteData () {
// 要删除的条件
let del = {name: 'Nick'};
MonModel.remove(del, (err, result) => {
if(err) {
console.log(err);
} else {
console.log('delete: ' + result);
}
// 关闭数据库
db.close();
});
} // 修改数据
function updateData() {
// 原数据字段值
let oldValue = {name: 'Nick'};
// 单条件更新
let newData1 = {$set: {name: '风夏'}};
// 多条件更新
let newData2 = {$set: {name: '风夏', gender: '女'}};
MonModel.update(oldValue, newData2, (err, result) => {
if(err) {
console.log(err);
} else {
console.log('update');
}
// 关闭数据库
db.close();
});
} // 查询数据
function findData() {
// 要查询的字段
let content = {name: '风夏'};
let field = {name: 1, age:1, gender:1};
MonModel.find(content, field, (err, result) => {
if(err) {
console.log(err);
} else {
console.log(result);
}
});
} //insertData();
//deleteData();
//updateData();
findData();
MongoDB学习之mongoose的更多相关文章
- mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...
- 【转】mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
mongoDB 学习笔记纯干货(mongoose.增删改查.聚合.索引.连接.备份与恢复.监控等等) http://www.cnblogs.com/bxm0927/p/7159556.html
- MongoDB学习笔记二- Mongoose
MongoDB学习笔记二 Mongoose Mongoose 简介 之前我们都是通过shell来完成对数据库的各种操作, 在开发中大部分时候我们都需要通过程序来完成对数据库的操作 而Mongoose就 ...
- MongoDB学习笔记系列
回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...
- MongoDB学习笔记—Linux下搭建MongoDB环境
1.MongoDB简单说明 a MongoDB是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应用提供可扩展的高性能数据存储解决方案. b MongoDB是一个介于关系 ...
- Mongodb学习笔记一(Mongodb环境配置)
Mongodb学习 说明: MongoDB由databases组成,database由collections组成,collection由documents组成,document由fileds组成.Mo ...
- MongoDB学习记录
一.操作符 "$lt" :"<""$lte" :"<=""$gt" :"> ...
- PHP操作MongoDB学习笔记
<?php/*** PHP操作MongoDB学习笔记*///*************************//** 连接MongoDB数据库 **////*************** ...
- MongoDB学习:(二)MongoDB简单使用
MongoDB学习:(二)MongoDB简单使用 MongoDB使用: 执行mongodb的操作之前,我们需要运行命令,来进入操作命令界面 >mongo 提示该错误,说明我们系统缺少一个补丁,该 ...
随机推荐
- 首字母变大写(stringstream的应用)
Problem Description 输入一个英文句子,将每个单词的第一个字母改成大写字母. Input 输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行. O ...
- JavaWeb学习笔记(九)—— JSTL标签库
一.JSTL概述 1.1 什么是JSTL JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便,它与JSP动作标签一样,只不过它不是 ...
- Apache 配置 虚拟主机
<VirtualHost *:80> ServerName tongcheng.5q88.cn:80 ServerAlias DirectoryIndex index.html index ...
- R语言常用包汇总
转载于:https://blog.csdn.net/sinat_26917383/article/details/50651464?locationNum=2&fps=1 一.一些函数包大汇总 ...
- python之文件读写(2)
2. 写入数据到文件中 读取文件用read,那么写用什么嘞?用write!实际操作一下. 2.1 简单的写入数据到文件中 file = open("write_data", &qu ...
- nodejs fs读取静态json文件
let fs = require('fs'),stream = fs.createReadStream('./obd.json'),data = ""; stream.on('da ...
- WSH的SpecialFolders对像
前面我做过一个VBS,来实现添加网站快捷方式到开始菜单,当然你也可以添加到别的地方,这就是那个对像的一些用法返回 SpecialFolders 对象(特殊文件夹集). object.SpecialFo ...
- 将M个客服随机分配给N个客户
class AllocUser { //客户多于客服 public static void Test() { var customers = new List<Customer>() { ...
- vux构建的项目打包成app出的一些问题
1.static里面能放一些外部的插件,css可以放static,引用的时候按照相对路径写, less不可以,因为放在static里面的文件不会经过webpack的处理,所以也就不会编译成css,所以 ...
- ThinkPHP vendor 方法导入第三方类库
ThinkPHP 3.2 vendor()方法的深入研究及Phpqrcode的正确扩展 ThinkPHP vendor 方法导入第三方类库 第三方类库 第三方类库指除了 ThinkPHP 框架.应用项 ...