一、 在Node中如何操作 MongoDB数据
   1.使用官方的 mongodb 来操作:https://github.com/mongodb/node-mongodb-native
   2.使用第三方库 mongoose:https://mongoosejs.com/
   3.安装:

 npm i mongoose

  4. 引入需要的包

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true});
mongoose.Promise = global.Promise;
var Cat = mongoose.model('Cat', { name: String });
for (var i = 0; i < 10; i++) {
var kitty = new Cat({ name: 'Zildjian' });
kitty.save(function (err) {
if(err) {
console.log(err)
} else {
console.log('meow')
}
});
}

二、 MongoDB 数据库的基本概念
    1. 可以有多个数据库  (MySQL叫表,,这里叫集合)
    2 一个集合中可以有多个文档(表记录)
    3. 文档结构很灵活,没有任何限制
    4. MongoDB 非常灵活,不需要像 MySql 一样先创建数据库、表、设计表结构
       5. 在这里只需要:当你需要插入数据的时候,只需要指定哪个数据库的哪个集合操作就可以
       6. 一切都由MongoDB来帮你自动完成建库建表这件事
 三、官方指南
   1. 设计Schema 发布Model

var mongoose = require('mongoose')
var Schema = mongoose.Schema

   2. 连接 MongoDB 数据库,localhost代表本机数据库,

// test是数据库的名字,它可以是还未存在的
        // 当你插入第一条数据之后就会被自动创建出来
   

mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true});

  3..设计集合结构(表结构)

    // 字段名称就是表结构中的属性名称
    // 约束的目的是为了保证数据的完整性,不要有脏数据

var userSchema = new Schema({
username: {
type: String,
require: true // 必须有
},
password: {
type: String,
require: true
},
email: {
type: String
}
});

  4. 将文档结构发布为模型

//     mongoose.model 方法就是用来将一个架构发布为 model
        //  第一个参数:传入一个大写名词单数字符串用来表示你的数据库名称
   //  mongoose 会自动将大写名词的字符串生成 小写复数 的集合名
   //  例如这里的User最终会变为users集合名称
   //  第二个参数:架构 Schema
   // 返回值:,模型构造函数

 var User = mongoose.model('User', userSchema)

  5. 当我们有了模型构造函数之后,就可以使用这个构造函数对users集合中的数进行操作(增删改查)

   增加数据

var admin = new User({
username: 'admin',
password: '123456',
email: '2352404495@qq.com'
})
admin.save(function (err, ret) {
if (err) {
console.log('保存失败')
} else {
console.log('保存成功')
console.log(ret)
}
})

   查询:
      查全部:

`User.find(function (err, ret) {
if (err) {
console.log('failed')
} else {
console.log(ret)
}
})`
+ 按条件查一个,条件可以有多个:
`User.findOne({
username: 'chenxiao'
}, function (err, ret) {
if (err) {
console.log('failed')
} else {
console.log(ret)
}
})` //返回的是对象,如果把findOne换成find则会返回数组

    无条件查询一个,结果是第一条:

User.findOne(function (err, ret) {
if (err) {
console.log('failed')
} else {
console.log(ret)
}
})

   删除数据

User.remove({
username: 'admin'
}, function (err, ret) {
if (err) {
console.log('删除失败')
} else {
console.log('success')
console.log(ret)
}
})

     更新数据

User.findByIdAndUpdate('5ca44683632b0b27c8dacf0c', {
password: '154822'
}, function (err, ret) {
if (err) {
console.log('failed');
} else {
console.log('success');
}
})

MongoDB基本增删改查的更多相关文章

  1. Java连接MongoDB进行增删改查

    1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean ...

  2. MongoDB的增删改查 转

    MongoDB的增删改查 (黎明你好原创作品,转载请注明) MongoDB中数据的基本单元叫做文档,采用json的键-值的方式.多个键及其关联的值有序的存放在一起变是文档.类似于编程语言中的键值关系. ...

  3. Java实现mongodb原生增删改查语句

    Java实现mongodb原生增删改查语句 2018-03-16 自动化测试时,需校验数据库数据,为了快速自动化,在代码中用原生增删改查语句操作mongodb 结构 代码 0 pom.xml < ...

  4. Scala对MongoDB的增删改查操作

    =========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! ==================== ...

  5. C# 对MongoDB 进行增删改查的简单操作

    C# 对MongoDB 进行增删改查的简单操作   下面演示下C#操作MongoDB驱动的简单的增删改查代码 运用到的MongoDB支持的C#驱动,当前版本为1.6.0 1,连接数据库   /// & ...

  6. python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查

    python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...

  7. python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)

    一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...

  8. 2,MongoDB之增删改查及pymongo的使用

    本章我们来学习一下关于 MongoDB的增删改查 一.MongoDB操作 之 原生ORM,根本不存在SQL语句 创建数据库:这里和一般的关系型数据库一样,都要先建立一个自己的数据库空间 是的,Mong ...

  9. SpringBoot操作MongoDB实现增删改查

    本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...

  10. MongoDB之增删改查(一)

    本文主要介绍MongoDB数据库增删改查操作. 增 mongoDB和其它关系型数据库一样,通过insert来添加数据到集合中去. db.collectionName.insert(内容) 显示数据库中 ...

随机推荐

  1. Appium下载安装及环境配置

    下载地址:https://bitbucket.org/appium/appium.app/downloads/ windows安装: 下载 AppiumForWindows.zip 解压 Appium ...

  2. centos7编译安装Python3所需要的库(模块)依赖

    在centos中编译安装python3环境,第三方的库 实战的编辑环境: 1.VMware虚拟机   2.centos7 依赖包经过百度搜集以及之前安装Python3报错搜集(centos7反反复复安 ...

  3. 17.0-uC/OS-III消息管理

    消息传递 有些情况下任务或ISR与另一个任务间进行通信,这种信息交换叫做作业间的通信. 可以有两种方法实现这种通信: 全局变量. 发送消息. 1.果使用全局变量,任务或ISR就须确保它独占该变量.如果 ...

  4. ES6语法(3)—— 用promise()对象优雅的解决异步操作

    Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大. 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果. ...

  5. mysql 目录

    初识数据库 mysql 初识sql语句 mysql 操作sql语句 mysql 数据库操作 mysql 数据表操作 mysql 数据操作 mysql 权限管理 mysql内置功能之视图.触发器.事务. ...

  6. 构建 Owin 中间件 来获取客户端IP地址

    Not so long ago, we discussed on this blog the possible ways of retrieving the client’s IP address i ...

  7. js对象属性名驼峰式转下划线

    一.题目示例: 思路: 1.匹配属性名字符串中的大写字母和数字 2.通过匹配后的lastIndex属性获取匹配到的大写字母和数字的位置 3.判断大写字母的位置是否为首位置以及lastIndex是否为0 ...

  8. php判断手机段登录,以及phpcms手机PC双模板调用

    首先一段php代码判断是否为手机浏览: function isMobile() { // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ($_SERVER['HTTP ...

  9. caffe-ssd安装GPU版本和CPU的区别

    在CPU中1.CPU_ONLY :=1的注释取消掉 2.BLAS := atlas 在GPU中 1.USE_CUDNN := 1的注释取消 2.BLAS := open

  10. 既然选择了远方,便只顾风雨兼程--myvue

    浅谈以下vue的模式,其实vue的模式跟react是一样的,都是MVVM模式,就是直接数据和视图之间的切换 如果单纯这样认识的话,和angular相比较起来,vue就简单的很多,但是事实情况并不是这样 ...