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的更多相关文章

  1. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

  2. 【转】mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    mongoDB 学习笔记纯干货(mongoose.增删改查.聚合.索引.连接.备份与恢复.监控等等) http://www.cnblogs.com/bxm0927/p/7159556.html

  3. MongoDB学习笔记二- Mongoose

    MongoDB学习笔记二 Mongoose Mongoose 简介 之前我们都是通过shell来完成对数据库的各种操作, 在开发中大部分时候我们都需要通过程序来完成对数据库的操作 而Mongoose就 ...

  4. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

  5. MongoDB学习笔记—Linux下搭建MongoDB环境

    1.MongoDB简单说明 a MongoDB是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应用提供可扩展的高性能数据存储解决方案. b MongoDB是一个介于关系 ...

  6. Mongodb学习笔记一(Mongodb环境配置)

    Mongodb学习 说明: MongoDB由databases组成,database由collections组成,collection由documents组成,document由fileds组成.Mo ...

  7. MongoDB学习记录

    一.操作符 "$lt" :"<""$lte" :"<=""$gt" :"> ...

  8. PHP操作MongoDB学习笔记

    <?php/*** PHP操作MongoDB学习笔记*///*************************//**   连接MongoDB数据库  **////*************** ...

  9. MongoDB学习:(二)MongoDB简单使用

    MongoDB学习:(二)MongoDB简单使用 MongoDB使用: 执行mongodb的操作之前,我们需要运行命令,来进入操作命令界面 >mongo 提示该错误,说明我们系统缺少一个补丁,该 ...

随机推荐

  1. 首字母变大写(stringstream的应用)

    Problem Description 输入一个英文句子,将每个单词的第一个字母改成大写字母.   Input 输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行.   O ...

  2. JavaWeb学习笔记(九)—— JSTL标签库

    一.JSTL概述 1.1 什么是JSTL  JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便,它与JSP动作标签一样,只不过它不是 ...

  3. Apache 配置 虚拟主机

    <VirtualHost *:80> ServerName tongcheng.5q88.cn:80 ServerAlias DirectoryIndex index.html index ...

  4. R语言常用包汇总

    转载于:https://blog.csdn.net/sinat_26917383/article/details/50651464?locationNum=2&fps=1 一.一些函数包大汇总 ...

  5. python之文件读写(2)

    2. 写入数据到文件中 读取文件用read,那么写用什么嘞?用write!实际操作一下. 2.1 简单的写入数据到文件中 file = open("write_data", &qu ...

  6. nodejs fs读取静态json文件

    let fs = require('fs'),stream = fs.createReadStream('./obd.json'),data = ""; stream.on('da ...

  7. WSH的SpecialFolders对像

    前面我做过一个VBS,来实现添加网站快捷方式到开始菜单,当然你也可以添加到别的地方,这就是那个对像的一些用法返回 SpecialFolders 对象(特殊文件夹集). object.SpecialFo ...

  8. 将M个客服随机分配给N个客户

    class AllocUser { //客户多于客服 public static void Test() { var customers = new List<Customer>() { ...

  9. vux构建的项目打包成app出的一些问题

    1.static里面能放一些外部的插件,css可以放static,引用的时候按照相对路径写, less不可以,因为放在static里面的文件不会经过webpack的处理,所以也就不会编译成css,所以 ...

  10. ThinkPHP vendor 方法导入第三方类库

    ThinkPHP 3.2 vendor()方法的深入研究及Phpqrcode的正确扩展 ThinkPHP vendor 方法导入第三方类库 第三方类库 第三方类库指除了 ThinkPHP 框架.应用项 ...