// 引入 mongoose 模块
let mongoose = require('mongoose');
let article = require('./db/article');
// 连接数据库
mongoose.connect('mongodb://127.0.0.1:27017/liujunxiong',{ useNewUrlParser: true , useUnifiedTopology: true })
.then(()=>{
console.log('数据库连接成功');
})
.catch(()=>{
console.log('数据库连接失败');
})
// let user = mongoose.model('user',new mongoose.Schema({
// username:{
// type:String,
// required:true
// },
// password:{
// type:String,
// required:true
// },
// age:Number,
// sex:Number
// }))
article.findById({_id:'6041a967ccb655551c26b4d3'})
.then(d=>{
// console.log(d);
let arr = d.arr;
arr[0].aaa[0].a = 123;
article.updateOne({_id:'6041a967ccb655551c26b4d3'},{arr})
.then(d=>{
console.log(12,d);
})
})
return;
// 更新一条数据
// user.updateOne({查询条件},{更新数据})
// user.updateOne({username:'张三'},{password:'ljx'})
// .then(res=>{
// console.log('成功');
// console.log(res);
// // { n: 1, nModified: 1, ok: 1 }
// })
// .catch(err=>{
// console.log('失败');
// console.log(err);
// })
// 更新多条数据
// user.updateMany({查询条件},{更新数据})
// user.updateMany({sex:1},{sex:3})
// .then(res=>{
// console.log('成功');
// console.log(res);
// // { n: 5, nModified: 5, ok: 1 }
// })
// .catch(err=>{
// console.log('失败');
// console.log(err);
// })
// 替换一个文档
// 没有替换之前
/**
* {
* "_id":{"$oid":"601955e827afd44888ec2a17"},
* "username":"张三",
* "password":"1234",
* "age":{"$numberInt":"12"},
* "sex":{"$numberInt":"3"},
* "__v":{"$numberInt":"0"}
* }
*/
// 替换之后
/**
* {
* "_id":{"$oid":"60194bb3851f144cb8d97991"},
* "sex":{"$numberInt":"0"},
* "__v":{"$numberInt":"0"}
* }
*/
user.replaceOne({_id:'60194bb3851f144cb8d97991'},{
username:'刘俊雄',
password:'12123',
age:26,
sex:1
})
.then(res=>{
console.log('成功');
console.log(res);
// { n: 1, nModified: 1, ok: 1 }
})
.catch(err=>{
console.log('失败');
console.log(err);
})
// 如下操作添加数组["c", "d"]到字段letters
// 原数据 { _id: 1, letters: ["a", "b"] }
// test.update(
// { _id: 1 },
// { $addToSet: {letters: [ "c", "d" ] } }
// )
// { _id: 1, letters: ["a", "b",[ "c", "d" ]] }
//如果想将数组中的每个元素分开添加到letters字段中,可以使用$each修饰符。
// 原数据 { _id: 1, letters: ["a", "b"] }
// test.update(
// { _id: 1 },
// { $each: {letters: [ "c", "d","a" ] } }
// )
//元素已经存在于数组中了的元素不会重复出现
// { _id: 1, letters: ["a", "b", "c", "d" ] }
// $push的$slice子操作符的理解
// person.update(
// {"name":"123"},
// {"$push":{"text":{ "$each":["1","2","3","4"], "$slice":-4}}}
// )