【问题标题】:Pymongo - How can I return a specific field?Pymongo - 如何返回特定字段?
【发布时间】:2020-10-03 03:05:46
【问题描述】:

我需要文档的 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))

【问题讨论】:

标签: python database mongodb pymongo querying


【解决方案1】:

除非您明确要求得到它,否则您总是会得到 _id 字段。

所以它将在您的find()find_one() 语句的返回文档中。例如:

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

【讨论】:

  • 这是完美的。抱歉,我对 pymongo 很陌生。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-03
  • 2015-06-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多