node 操控mongodb方法
1. 安装
cnpm i mongoose --save
2. 使用
// 引入 mongoose
const mongoose = require('mongoose');
// 连接数据库
mongoose.connect('mongodb://localhost:27017/blog',
{useNewUrlParser:true,useUnifiedTopology:true}, err=>{
if(err){
console.log('数据库连接失败');
return
}
console.log('数据库连接成功');
});
let studentScheme = new mongoose.Schema({
name: {type: String, required: true},
sex: {type: String, required: true},
age: {type: Number, required: true},
isMarried: {type: String}
});
// 往banjis这个集合中添加数据 集合名字要求:s结尾,名字小写字母
// Student构造函数
let Student = mongoose.model('banjis', studentScheme)
let xiaoming = new Student({
name: 'xiaoming',
sex: 'male',
age: 18,
isMarried: true
});
// 插入数据到数据库,返回promise对象调用then方法
xiaoming.save().then((data) => {
console.log(data)
})
/*
返回结果
{
_id: 5f9b67a90b6f1822d82edc8e,
name: 'xiaoming',
sex: 'male',
age: 18,
isMarried: true,
__v: 0
}
*/
/*
实例化对象.方法 动态方法
构造函数.方法 静态方法
*/
// 查找数据
// Student.findOne({ name: 'xiaoming' }).then(data=>{
// console.log(data)
// })
// Student.find({ name: 'xiaoming' }).then((data) => {
// // 返回查找到的所有数据
// console.log(data)
// })
// 删除一个
// Student.deleteOne({ name: 'xiaoming' }).then((data) => {
// // { n: 1, ok: 1, deletedCount: 1 }
// console.log(data)
// })
// 删除所有
// Student.deleteMany({ name: 'xiaoming' }).then((data) => {
// // { n: 3, ok: 1, deletedCount: 3 }
// console.log(data)
// })
// 修改数据
// Student.updateOne({ name: '小明' }, { $set: { name: 'xiaoming' } }).then((data) => {
// // { n: 1, nModified: 1, ok: 1 } nModified被修改个数
// console.log(data)
// })
Student.updateMany({ name: 'xiaoming' }, { $set: { name: '小明' } }).then((data) => {
// { n: 1, nModified: 1, ok: 1 }
console.log(data)
})
3. 补充
(1)过滤某个字段
const filter = {password: 0, __v: 0}; // 指定过滤的属性
UserModel.findOne({_id: userid}, filter).then(data=>{
console.log(data);
return res.send({code: 0, data})
})