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基础01—基础数据类型

    数据类型 单位换算 最小的单位为bit,表示一个二进制的0或1,一般使用小写的b表示 存储的最小单位为字节(Byte),1B = 8b 1024B = 1KB 1024KB = 1MB 1024MB ...

  2. Android GPS应用(获取定位信息)

    1.介绍 2.使用方法 3.在AndroidManifest.xml文件中添加 <uses-permission android:name="android.permission.AC ...

  3. hql语句加别名的错误

    写了一个查询数量的方法,结果执行不出来,debug后是runtimeException,然后就在那个hql里面使劲找,将他翻译成sql在数据库中执行,结果也没问题,原来的hql如下: 注意这个num, ...

  4. [原创]c# 类中 Collection 字段初始化的特殊之处

    1.今天看一下StackExchange.Redis的源代码,里面有这样一段代码 public sealed class ConfigurationOptions : ICloneable { ... ...

  5. springboot(四)-项目部署

    Springboot和我们之前学习的web应用程序不一样,其本质上是一个java应用程序.部署的方式有两种:打成jar包,或者打成war包. 打成jar包 切换到项目文件中 然后mvn install ...

  6. sublim text3中的一些设置

    {    "dictionary": "Packages/Language - English/en_US.dic",    "font_face&q ...

  7. ESP8266使用详解

    [From] http://www.cnblogs.com/yangfengwu/p/5205570.html 用的这款 各引脚功能:来至厂家提供的资料 GPIO0 默认是工作模式(不接线).如果接了 ...

  8. Q541 反转字符串 II

    给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转.如果剩余少于 k 个字符,则将剩余的所有全部反转.如果有小于 2k 但大于或等于 k 个字符,则反转前 ...

  9. 使用Maven运行Java main的3种方式使用Maven运行Java main的3种方式

    maven使用exec插件运行java main方法,以下是3种不同的操作方式. 一.从命令行运行 1.运行前先编译代码,exec:java不会自动编译代码,你需要手动执行mvn compile来完成 ...

  10. Transform 引起的 z-index "失效"

    重新学习CSS后的第三天,学习制作阴影的过程中,发现的问题:设置了box-shadow后展现的阴影: 添加transform:rotate(10deg);后的效果: 查看CodePen例子:阴影效果 ...