无法从查询中更新最后一个文档

时间:2015-04-25 19:22:31

标签: mongodb

您好我是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))

会做我想要的。我检查了官方文档,但在查询最后一个文档时找不到任何内容。

2 个答案:

答案 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},{...})