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. python创建shape

    import shapefile import json import os #shapefile="polygon.shp"; #jsonfile="社区网格.json ...

  2. Centos7服务器启动jar包项目最佳方式

    jar后台运行:nohup java -jar xx.jar >/dev/null & 此处的“>/dev/null”作用是将终端输出信息输出到空洞中,即不保存输出信息,若要查看输 ...

  3. AF 与 PF区别

    AF 表示ADDRESS FAMILY 地址族 PF 表示PROTOCL FAMILY 协议族 Winsock2.h中#define AF_INET 0#define PF_INET AF_INET ...

  4. js 封装一个均速动画函数

    //动画函数---任意一个元素移动到指定的目标位置 //element为元素 target为位置 function carToon(element, target) { //设置一个定时器让他循环去增 ...

  5. scrapy框架之(CrawlSpider)

    一.CrawlSpider简介 如果想要通过爬虫程序去爬取”糗百“全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调pa ...

  6. C#知识点提要

    本篇博文主要对asp.net mvc开发需要撑握的C#语言知识点进行简单回顾,尤其是C# 3.0才有的一些C#语言特性.对于正在学asp.net mvc的童鞋,不防花个几分钟浏览一下.本文要回顾的C# ...

  7. Column 'orders' in order clause is ambiguous

    今天报了这个错误 原因是.当使用sql查询语句,使用了join查表.但是这个orders没指定是哪张表的字段 ,发生在自关联情况

  8. Markdown简易使用

    Markdown 笔记 标题 1.一级标题 2.二级标题 3.三级标题 列表 这是 一个 无序列表 这是 一个 有序列表 引用 这是一条引用 图片与链接 图片 链接 Baidu 粗体与斜体 粗体 斜体 ...

  9. Bootstrap 斜体、文本对齐、缩略图、地址、列表等

    目录1.标题2.页面主体3.强调    a.小号文本    b.着重    c.斜体    d.对齐class    e.强调class4.缩略语5.地址6.列表    a.无序列表    b.有序列 ...

  10. 坐标深圳 | Kubernetes!我要用这样的姿势拥抱你

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 从去年至今,容器.Kubernetes话题的热度就持续不减,有人说基于容器 +Kubernetes 的新型 PaaS 将会成为云计算的主流: ...