无论是基于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 的增删改查操作的更多相关文章

  1. TP5.1:数据库的增删改查操作(基于面向对象操作)

    我们现实中对数据库的增删改查操作,都是使用模型类进行操作的(表名::),也就是面向对象操作,只有底层的代码用的是数据库操作(Db::table('表名')) 下面我将贴出模型类进行的增删改查操作,通过 ...

  2. TP5.1:数据库的增删改查操作(基于数据库操作)

    1.在app/index/controller文件夹下创建一个文件,名为:Operation 注意:起名一定要避开关键字,例如:mysql,curd等等,如果使用关键字起名,会造成报错! 在Opera ...

  3. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

  4. 详谈easyui datagrid增删改查操作

    转自:http://blog.csdn.net/abauch_d/article/details/7734395 前几天我把easyui dadtagrid的增删改查的实现代码贴了出来,发现访问量达到 ...

  5. JDBC连接数据库及增删改查操作

    什么是JDBC?Java语言访问数据库的一种规范,是一套APIJDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类 ...

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

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

  7. AD 域服务简介(三)- Java 对 AD 域用户的增删改查操作

    博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 Java 获取 AD 域用户, ...

  8. 后盾网lavarel视频项目---lavarel使用模型进行增删改查操作

    后盾网lavarel视频项目---lavarel使用模型进行增删改查操作 一.总结 一句话总结: 使用模型操作常用方法 查一条:$model=Tag::find($id); 删一条:Tag::dest ...

  9. 如何搭建一个WEB服务器项目(二)—— 对数据库表进行基本的增删改查操作

    使用HibernateTemplate进行增删改查操作 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出 ...

随机推荐

  1. HttpClient的几个实现类

    DefaultHttpClient最基本的HttpClient实现 org.apache.http.impl.client.DefaultHttpClient占用内存23字节 第一次初始化的时候需要2 ...

  2. jquery panel加载(dialog加载类似)

    项目情况: 主页面用引用了公共头文件(包含easui.min.js),使用easyui的dialog(href方式)打开窗口(被打开的窗口页面是纯html片段,无body元素等,也引入了公共头文件), ...

  3. DB2 字符串的字段转为整形时的问题

    正确语句: select int(cast(substr(dpt_leader_ids,4,posstr(dpt_leader_ids,',0)')-4) as varchar(8))), d.* f ...

  4. 2018.08.02 洛谷P3355 骑士共存问题(最小割)

    传送门 这题让我联想到一道叫做方格取数问题的题,如果想使摆的更多,就要使不能摆的更少,因此根据骑士的限制条件建图,求出至少有多少骑士不能摆,减一减就行了. 代码: #include<bits/s ...

  5. SIM900 AT来电显示开启,一些代码

    /*Note: this code is a demo for how to using gprs shield to send sms message, dial a voice call and ...

  6. Matlab 中以分数显示结果

    转http://www.blogbus.com/shijuanfeng-logs/234881647.html Matlab,计算得到的结果一般是小数形式. 但为了更精确表示,我们有时候需要用到分数形 ...

  7. TurtleBot教程

    TurtleBot TurtleBot combines popular off-the-shelf robot components like the iRobot Create, Yujin Ro ...

  8. (线段树)Mayor's posters --poj -- 2528

    链接: http://poj.org/problem?id=2528 覆盖问题, 要从后往前找, 如果已经被覆盖就不能再覆盖了,否则就可以覆盖 递归呀递归什么时候我才能吃透你 代码: #include ...

  9. 基于Quartz.net的远程任务管理系统 一

    在上一篇绪中,已经介绍了整个项目的情况下了,接下来就是开始一步步做起来了. 首先:先整个我们的Job任务表,以及Job执行日志表.SQL如下: drop table if exists job_inf ...

  10. JWT+ASP.NET MVC 时间戳防止重放攻击

     时间戳作用 客户端在向服务端接口进行请求,如果请求信息进行了加密处理,被第三方截取到请求包,可以使用该请求包进行重复请求操作.如果服务端不进行防重放攻击,就会服务器压力增大,而使用时间戳的方式可以解 ...