我有一個 ObjectId 串列,我想將其傳遞到以下 pymongo 命令中,以通過它們的 ObjectId 查找檔案
ids = ['62b3221c2db07f9388aa61e9', '62b325f65402e5ceea9a3d4c', '62b48ccee6f77605c2783775']
list(dbusers.find({"_id" : {"$in": ids }}))
但是它希望它們采用格式
ids = [ObjectId('62b3221c2db07f9388aa61e9'), ObjectId('62b325f65402e5ceea9a3d4c'), ObjectId('62b48ccee6f77605c2783775')]
但是我似乎無法以這種格式獲取它們,因為它們在串列中?
uj5u.com熱心網友回復:
ObjectId您可以通過在創建物件 id 作為引數時將物件 id 字串轉換為正確的物件 ( ObjectId(<object_id>))。
要將串列轉換為ObjectId物件串列而不是普通字串串列,您可以使用mapwhich 呼叫串列中每個元素的可呼叫物件并回傳一個迭代器 - 然后您可以耗盡此迭代器并通過將串列回傳給它list:
from bson.objectId import ObjectId
object_id_list = list(map(ObjectId, ids))
found_users = list(dbusers.find({"_id": {"$in": object_id_list}}))
由于類作為實體化類的可呼叫物件,您可以將類作為第一個引數map并獲取作為該類創建的物件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/495736.html
標籤:Python mongodb pymongo 快速API
上一篇:貓鼬沒有填充相關陣列
