您好我是Mongodb的新手,我目前正在尝试更新查询结果中的最后一个文档但是却无法这样做。
我知道如何使用
获取最后一个文档 db.collection.find().sort({$natural:-1}).limit(1)
但我该如何更新?我试过了:
db.collection.update(db.collection.find().sort({$natural:-1}).limit(1))
但那没用。我不认为:
db.collection.update(query,update,option).sort({$natural:-1}).limit(1))
会做我想要的。我检查了官方文档,但在查询最后一个文档时找不到任何内容。
答案 0 :(得分:3)
您可以使用findAndModify
执行需要排序的更新,以识别要更新的文档:
db.test.findAndModify({
query: {},
sort: {$natural: -1},
update: {$set: {foo: 'bar'}}
})
答案 1 :(得分:0)
你也可以这样做:
var id = db.collection.find().sort({$natural:-1}).limit(1)[0]['_id'];
db.collection.update({_id: id},{...})