MongoDB基本增删改查
一、 在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基本增删改查的更多相关文章
- Java连接MongoDB进行增删改查
1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean ...
- MongoDB的增删改查 转
MongoDB的增删改查 (黎明你好原创作品,转载请注明) MongoDB中数据的基本单元叫做文档,采用json的键-值的方式.多个键及其关联的值有序的存放在一起变是文档.类似于编程语言中的键值关系. ...
- Java实现mongodb原生增删改查语句
Java实现mongodb原生增删改查语句 2018-03-16 自动化测试时,需校验数据库数据,为了快速自动化,在代码中用原生增删改查语句操作mongodb 结构 代码 0 pom.xml < ...
- Scala对MongoDB的增删改查操作
=========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! ==================== ...
- C# 对MongoDB 进行增删改查的简单操作
C# 对MongoDB 进行增删改查的简单操作 下面演示下C#操作MongoDB驱动的简单的增删改查代码 运用到的MongoDB支持的C#驱动,当前版本为1.6.0 1,连接数据库 /// & ...
- python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查
python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...
- python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)
一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...
- 2,MongoDB之增删改查及pymongo的使用
本章我们来学习一下关于 MongoDB的增删改查 一.MongoDB操作 之 原生ORM,根本不存在SQL语句 创建数据库:这里和一般的关系型数据库一样,都要先建立一个自己的数据库空间 是的,Mong ...
- SpringBoot操作MongoDB实现增删改查
本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...
- MongoDB之增删改查(一)
本文主要介绍MongoDB数据库增删改查操作. 增 mongoDB和其它关系型数据库一样,通过insert来添加数据到集合中去. db.collectionName.insert(内容) 显示数据库中 ...
随机推荐
- 【实战】Docker入门实践二:Docker服务基本操作 和 测试Hello World
操作环境 操作系统:CentOS7.2 内存:1GB CPU:2核 Docker服务常用命令 docker服务操作命令如下 service docker start #启动服务 service doc ...
- SpringCloud微服务高级
分布式配置中心 什么是配置中心 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring c ...
- Jenkins+Jmeter持续集成笔记(一:环境准备)
整体思路: 通过Jmeter图形界面编写api测试脚本 ant 批量执行Jmeter脚本文件 将其集成到jenkins,设置执行频率与发送测试报告 运行环境 系统 配置 IP Centos7.1 1核 ...
- python基础之 基本数据类型,str方法和for循环
1.概念 1.十进制转二进制,对2取余,余数倒序排列 2.字符串为空的时候,bool值为false,字符串非空就是True3.字符串转化成int时,必须是只包含数字才能转化.4.字符串转化成int时可 ...
- 【UML】NO.52.EBook.5.UML.1.012-【UML 大战需求分析】- 交互概览图(Interaction Overview Diagram)
1.0.0 Summary Tittle:[UML]NO.52.EBook.1.UML.1.012-[UML 大战需求分析]- 交互概览图(Interaction Overview Diagram) ...
- 《linux就该这么学》第七节课:文件的各种权限以及linux分区命名规则
笔记 (借鉴请改动) 5.3:文件特殊权限 SUID 临时拥有文件所有者的权限(基本上只是执行权限) SGID 临时拥有文件所有组的权限,在目录中创建文件自动继承该目录的用户组. SBIT 粘滞 ...
- iscroll4升级到iscroll5全攻略笔记
前段时间在搞移动终端(移动web)的项目,其中需要用到滚动的功能(html的滚动效果不好,且在低版本上不支持).后面上网找了下资料,发现大部分人都在用iscroll4(下面简称v4),下载下来试了下确 ...
- OAuth 2.0之授权码模式
转载自:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html OAuth 2.0授权码模式 授权码模式(authorization code)是功 ...
- TLS握手、中断恢复与证书中心的原因
在双方都拿到随机数A.B.C后,将会使用这三个随机数生成一个对话密钥,然后使用该对话密钥进行对称加密通信,这种方式我们可以看到,安全性取决于随机数C的加密,前面的几个都是明文传的,这里就取决于服务器的 ...
- Node.js基础学习一之Get请求
本人从事的是前端开发,这段时间公司开发项目比较少所以就想着学点东西,然后就想到了Node.js ,跟着菜鸟教程学了点,不过我觉得最好的学习方法是带着需求来学习. 其实和服务端打交道无非就是能有一个可以 ...