我有类似这样的东西。
{
"title" : "",
"source" : {
"object" : "some",
"group" : "some
"data" : []
}
}
“source.data”或“source”可能完全没有定义。
所以现在我需要选择所有有计数的对象(xxx.source.data)> 0。我该怎么做这个查询?我搜索count()和xxx.length(方法\属性),但仍然无法理解如何在我的情况下使用它们。
添加了:
.find({"source.data": {$exists: true, $size: {$gt: 1}}})
答案 0 :(得分:3)
您可以按照以下方式执行此操作:
db.myObject.find({$and:[{"source.data":{$exists:true}},{"source.data":{$not:{$size:0}}}]})
从mongoDB文档中,它说$size运算符不接受范围查询。
$ size不接受值范围。选择基于的文档 具有不同数量的元素的字段,创建一个计数器字段 在向字段添加元素时增加。
对于更大的查询,您可以使用列表索引。您可以使用以下查询来查找数据大小>的文档。 10。
db.myObject.find({$and:[{"source.data":{$exists:true}},{"source.data.10" : {$exists:true}}]})