我试图搜索嵌套元素的存在,以及获取大于的时间戳:
db.stats.find( { $and: [ { 'data.Statistics': {$exists: true} },{ timestamp: {$gte: 1} } ] }
从docs我无法看到我出错的地方,但我没有得到任何回报。
正好:
var query = {};
query["data.Statistics"] = {$exists: true}
然而,有效。
答案 0 :(得分:3)
在这种情况下, $and
运算符并不是必需的,因为只需指定逗号分隔的表达式列表就可以隐式使用它,因此您可以将查询重新编写为:< / p>
db.stats.find({
"data.Statistics": { "$exists": true },
"timestamp": { "$gte": 1 }
});
如果使用变量来使用方括号表示法创建查询对象,则可以像
一样使用它var query = {};
query["data.Statistics"] = { "$exists": true };
query["timestamp"] = { "$gte": 1 };
db.stats.find(query);