使用动态字符串查询嵌套 mongo 文档

Using Dynamic strings for querying nested mongo doc

我正在使用点表示法来查询嵌套的 mongo 文档。但是我希望动态生成此查询。

例如嵌套为

{ "Car":
     {
       "Make":
              { "Model": "Some val"
                 Year  : "Some year"
               }
     }
}

如果我执行 db.carcoll.find({'Car.Make.Model':'some val'}) 这样的查询,我会得到结果。但是,此查询字符串 'Car.Make.Model' 可能会更改为 Car.Make.Year,我希望此查询是动态的。

我将它设置在一个变量中并尝试类似 query='Car.Make' + choice; 其中 choice 是一个变量,它是“.Model”或“.Year”

和运行 db.carcoll.find({query:"1989"})

在这种情况下我没有得到结果。我该如何处理

没有测试过,只是想法。您是否尝试过此代码:

 var prop = "Car.Make." +  "Model" //or ""Year"
var query = {};
query[prop] = "1989";
db.carcoll.find(query)