文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
update 常见错误
/**
* 批量增加一些数据
*/
var student1 = {
name: 'lisi',
age: 10,
sex: 1,
hobby: {
hobbyOne: '篮球',
hobbyTwo: '足球',
hobbyThree: '羽毛球'
},
createTime: new Date()
};
var student2 = {
name: 'wangwu',
age: 12,
sex: 1,
hobby: {
hobbyOne: '游泳',
hobbyTwo: '健身',
hobbyThree: '乒乓球'
},
createTime: new Date()
};
var student3 = {
name: 'xiaohong',
age: 13,
sex: 1,
hobby: {
hobbyOne: '瑜伽',
hobbyTwo: '跳舞',
hobbyThree: '书法'
},
createTime: new Date()
};
var db = connect('user');
var studentArr = [student1, student2, student3];
db.student.insert(studentArr);
print('The data was inserted successfully');
// 查看插入后的数据
> db.student.find()
{ "_id" : ObjectId("5cbabb24bfc8fb0139b04d6a"), "name" : "lisi", "age" : 10, "sex" : 1, "hobby" : { "hobbyOne" : "篮球", "hobbyTwo" : "足球", "hobbyThree" : "羽毛球" }, "createTime" : ISODate("2019-04-20T06:24:36.707Z") }
{ "_id" : ObjectId("5cbabb24bfc8fb0139b04d6b"), "name" : "wangwu", "age" : 12, "sex" : 1, "hobby" : { "hobbyOne" : "游泳", "hobbyTwo" : "健身", "hobbyThree" : "乒乓球" }, "createTime" : ISODate("2019-04-20T06:24:36.707Z") }
{ "_id" : ObjectId("5cbabb24bfc8fb0139b04d6c"), "name" : "xiaohong", "age" : 13, "sex" : 1, "hobby" : { "hobbyOne" : "瑜伽", "hobbyTwo" : "跳舞", "hobbyThree" : "书法" }, "createTime" : ISODate("2019-04-20T06:24:36.707Z") }
// 修改小红的性别,这种写法是错误
> db.student.update({name: "xiaohong"}, {sex: 0})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
// 修改后再次查看所有数据,发现并不符合预期
> db.student.find()
{ "_id" : ObjectId("5cbabb24bfc8fb0139b04d6a"), "name" : "lisi", "age" : 10, "sex" : 1, "hobby" : { "hobbyOne" : "篮球", "hobbyTwo" : "足球", "hobbyThree" : "羽毛球" }, "createTime" : ISODate("2019-04-20T06:24:36.707Z") }
{ "_id" : ObjectId("5cbabb24bfc8fb0139b04d6b"), "name" : "wangwu", "age" : 12, "sex" : 1, "hobby" : { "hobbyOne" : "游泳", "hobbyTwo" : "健身", "hobbyThree" : "乒乓球" }, "createTime" : ISODate("2019-04-20T06:24:36.707Z") }
{ "_id" : ObjectId("5cbabb24bfc8fb0139b04d6c"), "sex" : 0 }
这样写的问题在于:我们的最后一条数据变成了只有 sex:0
,其它数据项全部丢失了。
正确写法:
/**
* 修改单条数据的正确写法
*/
var db = connect('user');
var student3 = {
name: 'xiaohong',
age: 13,
sex: 0,
hobby: {
hobbyOne: '瑜伽',
hobbyTwo: '跳舞',
hobbyThree: '书法'
},
createTime: new Date()
};
db.student.update({name: "xiaohong"}, student3);
print('The data was updated successfully');
这时候我们需要删除 student 集合中的数据,因为 xiaohong
这个用户已经不在数据库中了,然后重新使用 load 方法载入插入数据再进行修改。
//执行命令如下:
db.student.drop()
load('./demo4.js')
load('./demo5.js')
现在这种方法才是正确的,数据修改正常了,但是我们会发现写起来非常麻烦,而且特别容易写错。接下来我们学习一下 update
修改器,可以很好的解决这个问题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论