使用动态字符串查询嵌套 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)
我正在使用点表示法来查询嵌套的 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)