修改数据

81 阅读1分钟
// 引入 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}}}
// )