const express = require('express');
const mongoose = require('mongoose');
const DB_URL = 'mongodb://127.0.0.1:27017/mongodb';
// 解决waring信息(node:21708) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
mongoose.set('useCreateIndex', true)
// 解决waring信息(node:16308) DeprecationWarning: Mongoose: `findOneAndUpdate()` and `findOneAndDelete()` without the `useFindAndModify` option set to false are deprecated. See: https://mongoosejs.com/docs/deprecations.html#findandmodify
mongoose.set('useFindAndModify', false)
// 连接mongodb。后面两个参不加,会有waring信息
mongoose.connect(DB_URL, { useNewUrlParser: true, useUnifiedTopology: true });
mongoose.connection.once('open', () => {
console.log('mongo连接成功')
//这里mongoose.Schema要写上第二个参数,明确指定到数据库中的哪个表取数据
// 1.定义 Schema, 也就是传统意义的表结构
let userSchema = new mongoose.Schema({
// _name:{type: String, unique: true},//定义一个属性 name, 类型为 String,主键
_name:String,
_phone:Number
},
{collection: "test"}
);
// 2.定义 Model
let UserModel = mongoose.model('mongodb', userSchema);
// 3.定义测试数据
let obj = new UserModel({ _name: 'wang', _phone: 111 });
// 4.添加数据。
// let userEntity = new UserModel(obj)
// userEntity.save(function(err, doc){
// if(err) console.log(err);
// else console.log(' saved');
// });
// 5.修改数据
UserModel.findOneAndUpdate({ _phone: 111 }, { $set: { _name: 'aaa' } }, { multi: true }, function (err) {
if (err) { // 错误
console.log('update failed');
} else { // 正确
console.log('update success');
}
});
// 6.查询数据
//查询一条
let query = UserModel.findOne({ '_phone': 111 });
query.select();
query.exec(function (err, user) {
if (err) {
console.log('select failed');
} else {
console.log(user);
}
});
//查询多条
var query1 = UserModel.find({ '_phone': 111 });
query1.select();
query1.exec(function (err, user) {
if (err) {
console.log('select failed');
} else {
console.log(user);
}
});
//链式查询
// personModel //model 对象
// .find({ occupation: /host/ }) // 条件查询
// .where('name.last').equals('Ghost') //字段 = 值
// .where('age').gt(17).lt(66) // 范围
// .where('likes').in(['vaporizing', 'talking']) // 范围
// .limit(10) // 查几条
// .skip(20) // 跳过几条
// .asc('age') // 排序
// .sort('-occupation')
// .select('name occupation') // 执行查询 () 中的值可以省略, 只是别名
// .exec(callback); // 回调函数, 处理查询结果
UserModel
.where('_phone')
.where('_name').equals('aaa')
.limit(2)
.select()
.exec(function (err, user) {
if (err) {
console.log('select failed');
} else {
console.log(user);
}
});
// 7.删除
// UserModel.remove({ _phone: 111 }, { $set: { _name: 'aaa' } } , function (err) {
// if (err) { // 错误
// console.log('update failed');
// } else { // 正确
// console.log('update success');
// }
// });
});
2021-06-29 mongoose增删改查
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 以下是模拟一个帖子及其回复记录的增删改查的简易例子。replySchema是回复的类型结构,threadSchem...
- 1、引入mongoose 因为mongoose里面已经导入mongoodb,所以我们不需要单独引入mongodb;...
- 一、mongoose 介绍 mongoose是在node.js 异步环境下对mongodb 进行便捷操作的对象模型...
- 最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/...