mongodb支持redis中spop这样的操作吗?

2024-04-25 14:31:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python和mongo新手,我想写一个函数从mongodb弹出一个文档收藏。它可以先弹出或随机弹出。我之所以说“弹出”是因为我想在删除此文档时将其删除回来。但是我在mongodb官方网站上找不到这样的api,还有其他方法吗?你知道吗


Tags: 方法函数文档apimongomongodb新手官方网站
1条回答
网友
1楼 · 发布于 2024-04-25 14:31:47

^{}可以处理它,传递remove: true,它将在删除文档之前返回一个文档:

db.people.findAndModify(
   {
     query: { state: "active" },
     sort: { rating: 1 },
     remove: true
   }
)

pymongo开始,使用^{}方法。你知道吗


演示:

> 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

相关问题 更多 >