Pymongo.find()只返回答案

时间:2016-02-16 14:17:13

标签: python mongodb python-2.7 pymongo

我正在编写一个代码,它将使用pymongo从数据库中获取数据。之后,我将使用Tkinter在GUI中显示它。

我正在使用

.find()

查找具体文件。但是,我不想要任何其他的东西,而是名字'现身。所以我使用{" name":1},现在它返回:

{u'name':u'**returned_name**'}

如何删除你的名字' 以便它只返回 returned_name

提前致谢,

最高

P.S。我在网上搜索过很多但是找不到任何能给我一些帮助的论据。

2 个答案:

答案 0 :(得分:3)

find()调用返回的内容是游标。只需遍历游标并通过name键获取每个找到的文档的值:

result = db.col.find({"some": "condition"}, {"name": 1})
print([document["name"] for document in result])

因此,您将获得名称列表

或者,如果您希望并希望匹配单个文档,请使用find_one()

document = db.col.find_one({"some": "condition"}, {"name": 1})
print(document["name"])

答案 1 :(得分:0)

Mongo将使用密钥返回数据,但您可以使用类似

的解决方法
var result = []
db.Resellers_accounts.find({"name":1, "_id":0}).forEach(function(u) { result.push(u.name) })

这个例子适用于NodeJS驱动程序,类似的可以用于Python

编辑(Python代码) -

res = db.Resellers_accounts.find({},{"name":1, "_id":0})
result = []
for each in res:
    result.append(res['name'])

编辑2 - 没有pymongo不支持仅返回值,所有内容都是MongoDB中的键值配对。