【发布时间】:2019-10-24 15:19:01
【问题描述】:
我在 db 中有以下结构的文档
{
"_id" : ObjectId("5cfcd787cbac8d69e6db1a8"),
"__v" : 0,
"summary" : {
"Boundry" : false,
"Six" : false,
"Wicket" : false,
}
}
我想根据摘要查找数据,即边界,六和检票口
我可以通过使用“点”运算符来获取我的数据,即
db.getCollection('colection_name').find({"summary.Boundry": true})
但我希望它是动态的,以便我可以通过多个摘要键查找数据
对于边界而言,动态通过“summary.Boundry”查找数据:true,对于六,我需要通过“summary.Six”查找数据:true 我想制作“summary”+“.Six”这样的字符串它可以动态搜索这可能吗?
我已经尝试ElemMatch 进行查询,但它似乎只能在数组中工作
提前致谢
【问题讨论】:
-
我对你的问题有点困惑——你是不是想写一个像
{"summary.Boundry": true, "summary.Six": false }这样的查询?还是您想提出一个聚合? -
只用字符串插值
db.getCollection('colection_name').find({[summary.${key}]: true})