Pymongo - 如何 return 特定字段?
Pymongo - How can I return a specific field?
我需要文档的 ObjectId,以便将其放入列表中。视觉上我需要
'_id':'ObjectId(x)'
一堆文件。我怎样才能 return 文档的 ID?
为清楚起见更新问题。
假设你有一个文档:
doc1 = {"_id": ObjectId('123456789'),
"name" : "John Doe",
"shoe_size" : "7"
}
并且您需要一个特定的属性,例如“名称”
>>> name = doc1.get("name")
>>> print(name)
John Doe
现在,假设您只有 Id = 123456789,您需要从数据库中找到附加到该 Id 的文档,return 大小:
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'))
我需要文档的 ObjectId,以便将其放入列表中。视觉上我需要
'_id':'ObjectId(x)'
一堆文件。我怎样才能 return 文档的 ID?
为清楚起见更新问题。
假设你有一个文档:
doc1 = {"_id": ObjectId('123456789'),
"name" : "John Doe",
"shoe_size" : "7"
}
并且您需要一个特定的属性,例如“名称”
>>> name = doc1.get("name")
>>> print(name)
John Doe
现在,假设您只有 Id = 123456789,您需要从数据库中找到附加到该 Id 的文档,return 大小:
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'))