基于mongoose 的增删改查操作
无论是基于robomongo 的可视化工具,亦或是基于 mongoose 的函数工具,只要是对 mongodb 的操作,第一步都是开启数据库。
开启mongodb 数据库
进入mongod所在目录 执行命令 ./mongod --dbpath=存放数据的位置
例1:./mongod --dbpath d:\MongoDB\db
例2:./mongod --dbpath d:\MongoDB\db --port 自定义端口号,默认27017(了解即可,不推荐使用,修改默认端口号后期维护麻烦)
新增数据
let mongoose = require('mongoose');
let log = console.log.bind(console);
let db = null;
let Schema = mongoose.Schema;
// 链接数据库
mongoose.connect('mongodb://localhost/fay');
db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'))
db.once('open', (cb) => {
// 设置数据库类型
let PersonSchema = new Schema({
name: {
type: 'String',
required: true
},
age: {
type: 'Number',
retuired: true
}
});
// 新建集合(如存在该集合,就选中)
let PersonModel = db.model('person', PersonSchema);
// 需要保存的数据
let data = {
age: 50,
name: 'leno'
};
// 实例化集合并插入数据
let personEntity = new PersonModel(data);
// 保存实例
personEntity.save((err, res) => {
if(err) return log(err);
db.close();
});
})
删除数据
let mongoose = require('mongoose');
let log = console.log.bind(console);
let db = null;
let Schema = mongoose.Schema;
// 链接数据库
mongoose.connect('mongodb://localhost/fay');
db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'))
db.once('open', (cb) => {
// 设置数据库类型
let PersonSchema = new Schema({
name: {
type: 'String',
required: true
},
age: {
type: 'Number',
retuired: true
}
});
// 选择集合(如不存在该集合,就新建)
let PersonModel = db.model('person', PersonSchema);
// 删除的条件
let del = {name: 'leno'};
// 删除命令
PersonModel.remove(del, (err, res) => {
if(err) throw new Error(err);
log(res);
db.close();
})
});
修改数据
let mongoose = require('mongoose');
let log = console.log.bind(console);
let db = null;
let Schema = mongoose.Schema;
// 链接数据库
mongoose.connect('mongodb://localhost/fay');
db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'))
db.once('open', (cb) => {
// 设置数据库类型
let PersonSchema = new Schema({
name: {
type: 'String',
required: true
},
age: {
type: 'Number',
retuired: true
}
});
// 选择集合(如不存在该集合,就新建)
let PersonModel = db.model('person', PersonSchema);
// 旧数据
let oldVal = {name: 'leno'};
// 新数据
let newVal = {name: 'liao'};
// 多个新数据
let newVal2 = {name: 'liao', age: '25'};
// 修改(更新)命令
PersonModel.update(oldVal, newVal, (err, res) => {
if(err) throw new Error(err);
log(res);
db.close();
});
})
查询数据
let mongoose = require('mongoose');
let log = console.log.bind(console);
let db = null;
let Schema = mongoose.Schema;
// 链接数据库
mongoose.connect('mongodb://localhost/fay');
db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'))
db.once('open', (cb) => {
// 设置数据库类型
let PersonSchema = new Schema({
name: {
type: 'String',
required: true
},
age: {
type: 'Number',
retuired: true
}
});
// 选择集合(如不存在该集合,就新建)
let PersonModel = db.model('person', PersonSchema);
// 查询条件
let sql = {name: 'liao'};
// 查询命令
PersonModel.find(sql, (err, res) => {
if(err) throw new Error(err);
log(res);
db.close();
});
});
追加字段
在已存在的集合中,添加新的字段。schema.add()
基于mongoose 的增删改查操作的更多相关文章
- TP5.1:数据库的增删改查操作(基于面向对象操作)
我们现实中对数据库的增删改查操作,都是使用模型类进行操作的(表名::),也就是面向对象操作,只有底层的代码用的是数据库操作(Db::table('表名')) 下面我将贴出模型类进行的增删改查操作,通过 ...
- TP5.1:数据库的增删改查操作(基于数据库操作)
1.在app/index/controller文件夹下创建一个文件,名为:Operation 注意:起名一定要避开关键字,例如:mysql,curd等等,如果使用关键字起名,会造成报错! 在Opera ...
- mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...
- 详谈easyui datagrid增删改查操作
转自:http://blog.csdn.net/abauch_d/article/details/7734395 前几天我把easyui dadtagrid的增删改查的实现代码贴了出来,发现访问量达到 ...
- JDBC连接数据库及增删改查操作
什么是JDBC?Java语言访问数据库的一种规范,是一套APIJDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类 ...
- python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)
一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...
- AD 域服务简介(三)- Java 对 AD 域用户的增删改查操作
博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 Java 获取 AD 域用户, ...
- 后盾网lavarel视频项目---lavarel使用模型进行增删改查操作
后盾网lavarel视频项目---lavarel使用模型进行增删改查操作 一.总结 一句话总结: 使用模型操作常用方法 查一条:$model=Tag::find($id); 删一条:Tag::dest ...
- 如何搭建一个WEB服务器项目(二)—— 对数据库表进行基本的增删改查操作
使用HibernateTemplate进行增删改查操作 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出 ...
随机推荐
- 获取GUID的GET网址:createguid.com
1.在浏览器的地址栏中输入createguid.com,回车之后即可得到一个GUID 2.在JMeter中可以这样填写HTTP Request 然后通过正则表达式提取器提取GUID <texta ...
- sql删除重复记录
DELETE E FROM t E where E.id> ( SELECT MIN(X.id) FROM t X WHERE X.name = E.name );
- JSONModel简便应用
JSONModel, Mantle 这两个开源库都是用来进行封装JSON->Model的, 想想看, 直接向服务器发起一个请求,然后回来后,就是一个Model, 直接使用, 这是一个多么美好的事 ...
- 2018.10.13 bzoj1834: [ZJOI2010]network 网络扩容(最大流+费用流)
传送门 网络流水题啊. 第一问直接放心跑最大流(本来还以为有什么tricktricktrick). 第二问就直接把原来的边(u,v,c,w)(u,v,c,w)(u,v,c,w)变成(u,v,c,0)( ...
- 2018.09.23 关键网线(tarjan)
描述 给出一个无向连通图,即在任一个点对间存在路径.有的点提供服务a, 有的点提供服务b .同一个点可能有两种服务类型.每个点必须与提供2种服务的点连通.如果一个边断掉,就可能出现有些点不能被服务到, ...
- 简单的Java,Python,C,C++
Java 语言 //package main //注意不要添加包名称,否则会报错. import java.io.*; import java.util.*; cin.hasNext(); cin.h ...
- arcgis api for flex 开发入门(一)环境搭建
http://www.cnblogs.com/wenjl520/archive/2009/06/02/1494514.html arcgis api for flex 开发入门(一)环境搭建arcgi ...
- js基础学习笔记(五)
多种选择(Switch语句) 当有很多种选项的时候,switch比if else使用更方便. 语法: switch(表达式) { case值1: 执行代码块 1 break; case值2: 执行代码 ...
- MySQL性能调优与架构设计——第 16 章 MySQL Cluster
第 16 章 MySQL Cluster 前言: MySQL Cluster 是一个基于 NDB Cluster 存储引擎的完整的分布式数据库系统.不仅仅具有高可用性,而且可以自动切分数据,冗余数据等 ...
- Window 下好用的同步备份工具(来自微软)SyncToy
SyncToy 简单好用,满足备份的基本需求.