我在 Python 和 MongoDB 中的特定任務上遇到了困難。首先,我有一些用戶資料作為物件存盤在 MongoDB 陣列中,我需要做的第一件事是檢查是否有 2 個用戶在同一個陣列中。如果是,我需要檢查一個用戶的排名是否高于另一個用戶的排名。如果用戶的等級較高,則允許他踢其他用戶。否則,用戶會被告知他需要比目標用戶擁有更高的排名。在這個例子中只有 2 個用戶,但實際上有很多用戶,并且根據不和諧的發送命令選擇了 2 個,所以我不能只做陣列 [0]、陣列 [1]。資料是這樣存盤的:
{
_id: ObjectId("62464e3e75c6d843a338993b"),
Name: 'Team',
Members: [
{
User: Long("699724378526580848"),
Rank: 4
}
]
}
如果可以僅使用一個查詢來檢查用戶是否都在同一個陣列中,那就太好了。如果沒有,那么任何最有效的方法都會起作用。
uj5u.com熱心網友回復:
使用$all
db.collection.aggregate([
{
$match: { "Members.User": { $all: [ 123, 456 ] } }
},
{
$unwind: "$Members"
},
{
$sort: { "Members.Rank": -1 }
},
{
$limit: 1
}
])
mongoplayground
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/454574.html
標籤:Python 数组 mongodb 字典 pymongo
下一篇:在字典中存盤和使用對變數的參考
