簡體   English   中英

Pymongo - 如何返回特定字段?

[英]Pymongo - How can I return a specific field?

我需要文檔的 ObjectId 以便我可以將它放在列表中。 視覺上我需要

'_id':'ObjectId(x)'

出一堆文件。 如何返回文檔的 ID?

為了清楚起見,更新問題。

假設你有一個文檔:

doc1 = {"_id": ObjectId('123456789'),
        "name" : "John Doe",
        "shoe_size" : "7"
       }

並且您需要一個特定的屬性,例如“名稱”

>>> name = doc1.get("name")
>>> print(name)
John Doe

現在,假設您只有 Id = 123456789 並且您需要從數據庫中找到附加到該 Id 的文檔並返回大小:

import pymongo
from pymongo import MongoClient
from bson import ObjectId

>>> URI = "URI" #link that gives you access to your database
>>> client = MongoClient(URI)
>>> db = client.get_database()
>>> print(db.collection.find_one({"_id":ObjectId("123456789")}).get("size))
7

要搜索集合中的所有文檔並將 Id 存儲在列表中:

lst_ids = []
collection = db.collection.find({})
for doc in collection:
   lst_ids.append(doc.get("_id))

您總是會得到_id字段,除非您特別要求不要得到它。

所以它將在您的find()find_one()語句的返回文檔中。 例如:

record = db.mycollection.find_one({})
print (record.get('_id'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM