我只想从 MongoDB 集合中检索某些键的值。
但是,该集合有一些名称中带有“空格”的键,例如:
"Parent":{"key1": //some string,
"key2": //some string,
"key 3": //some string}
我知道这是一种错误的方法,因为理想情况下键名称中不应该有空格,但是我如何查询该键?我正在使用 Python 和 PyMongo。
对于普通键我可以这样做:
db.coll_name.find({"key": "India"}, {"_id": 0, "Parent.key1": 1, "Parent.key2": 1})
那么如何在上述查询的第二个参数中使用键“Parent['key 3']”?有什么办法可以实现这一点吗?
这是返回数据的查询(有效):
db.coll_name.find({}, {"Parent.key1": 1, "_id": 0})
这是不返回数据的查询:
db.coll_name.find({}, {"Parent['key 3']": 1, "_id": 0})
好吧,你构建这个的唯一方法是这样的:
content = {};
content["Parent"] = {}
content["Parent"]["key2"] = 1
content["Parent"]["key 3"] = 1
db.coll_name.insert(content)
但您似乎忽略了这样做没有任何问题:
db.coll_name.find({ "Parent.key 3": 1} )
或者在投影中
db.coll_name.find({}, { "Parent.key 3": 1 })
It's “点符号” http://docs.mongodb.org/manual/core/document/#dot-notation而不是对象表示法,只要您引用键名称(这对于点表示法是必需的),那么一切都很好,并且您可以在其中有一个空格。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)