该集合名为"baseCharges"
{
photos: {
under1500: 100,
between1501_2000: 125,
between2001_3000: 150,
between3001_4000: 175,
between4001_5000: 275,
between5001_6000: 375,
between6001_7000: 475,
between7001_8000: 575,
between8001_9000: 675,
between9001_10000: 775,
between10001_11000: 875
},
twilights: {
under1500: 100,
between1501_2000: 125,
between2001_3000: 150,
between3001_4000: 175,
between4001_5000: 275,
between5001_6000: 375,
between6001_7000: 475,
between7001_8000: 575,
between8001_9000: 675,
between9001_10000: 775,
between10001_11000: 875
},
_id: "B8RCdQp8kuL9r6KdT"
}
我想要返回的只是baseCharges.photos.under1500
我想查询密钥并让它返回" 100"作为值,我可以将其存储在变量中,而不是指针。
我已经检查了MongoDB上的其他线程,但没有任何对我有用。
db.baseCharges.find({ "photos.under1500" : 1 })
不起作用。
db.baseCharges.find("photos.under1500")
不起作用。
db.baseCharges.findOne({"photos.under1500" : 1 })
为空
答案 0 :(得分:2)
db.baseCharges.find({}, { _id:0, "photos.under1500" : 1 })
这将返回您想要的字段(没有条件,即所有条目)
编辑:如果你想要一个值(来自第一个/单个结果行),你需要从游标find()返回第一个文件,并使用点符号来获得你需要的东西;
db.baseCharges.find().next().photos.under1500
答案 1 :(得分:0)
我找到了另一种方法。
此集合baseCharges
只有一个条目,因此以下代码有效:
db.baseCharges.findOne().photos.under1500
我的问题是我不习惯使用MongoDB单一项目的工作方式。
我知道,对于包含多个条目的集合,我必须首先通过find
或独特的条件组合执行_id
以开始深入挖掘数据。
但是因为这个系列只有一个条目,所以我认为我可以用一种直接的分层方式来做。只有一个条目。不应该使用ID,因此我认为只需执行db.baseCharges.photos.under1500
即可。
但这不是它的工作方式。即使集合中只有一个条目,您仍然需要find
,然后深入查看所需的数据。