我正在使用python和mongo的新手,我想编写一个函数来从mongodb集合中弹出文档。可以先弹出或随机弹出。我说' pop'因为我想在它返回时删除这个文件。但是我在mongodb官方网站上找不到这样的api,还有其他办法吗?
答案 0 :(得分:3)
findAndModify()
可以处理它,传递remove: true
并在删除之前返回文档:
db.people.findAndModify(
{
query: { state: "active" },
sort: { rating: 1 },
remove: true
}
)
从pymongo
开始,使用find_and_modify()
方法。
演示:
> use foo
switched to db foo
> db.foo.insert({'test1': 1})
> db.foo.insert({'test2': 2})
> db.foo.insert({'test3': 3})
> db.foo.find()
{ "_id" : ObjectId("53d9af555f2067b54975678c"), "test1" : 1 }
{ "_id" : ObjectId("53d9af5a5f2067b54975678d"), "test2" : 2 }
{ "_id" : ObjectId("53d9af5d5f2067b54975678e"), "test3" : 3 }
> db.foo.findAndModify({remove: true})
{ "_id" : ObjectId("53d9af555f2067b54975678c"), "test1" : 1 }
> db.foo.findAndModify({remove: true})
{ "_id" : ObjectId("53d9af5a5f2067b54975678d"), "test2" : 2 }
> db.foo.findAndModify({remove: true})
{ "_id" : ObjectId("53d9af5d5f2067b54975678e"), "test3" : 3 }
> db.foo.count()
0