当一个字段是请求的其他字段的根字段时,如何在查询中获取mongodb的所有子字段?

Dhr*_*hak 6 mongodb

对于这种特定情况,一切正常,除非是字段field1,field2请求,并且field1是其中的一部分field2.

示例:

> db.mycoll.findOne()
{
    "_id" : 1,
    "data" : {
        "amounts" : {
            "dollar" : 20,
            "euro" : 18
        },
        "item" : "toy",
        "sale" : false
    }
}

   // works well
> db.mycoll.findOne({"_id":1},{ "data.amounts.dollar":1 })
{ "_id" : 1, "data" : { "amounts" : { "dollar" : 20 } } }



   // here "data" is root of "data.amounts.dollar" and "data.amounts.euro" 
   //   takes preference, how to query for "data", so 
   //   that all subfields of data are 
   //     returned
> db.mycoll.findOne({"_id":1},{ "data":1 , "data.amounts.dollar":1 })
{ "_id" : 1, "data" : { "amounts" : { "dollar" : 20 } } }
Run Code Online (Sandbox Code Playgroud)

预期产量:

 {
        "_id" : 1,
        "data" : {
            "amounts" : {
                "dollar" : 20,
                "euro" : 18
            },
            "item" : "toy",
            "sale" : false
        }
    }
Run Code Online (Sandbox Code Playgroud)

是的,可以在程序端格式化子字段,并将根字段发送到mongodb查询,但我的问题是如果在没有Javascript的查询方面这是可行的.

ina*_*gaJ 6

这是不寻常的行为,准确的错误.

来自可靠/官方消息来源:

似乎该bug仍然是开放的.

如果您需要进一步分析,请告诉我.