【发布时间】:2014-10-02 18:23:03
【问题描述】:
我在 mongodb 集合中有两种类型的文档:
-
一个关键会话具有简单价值的地方:
{"会话": NumberLong("10000000000001")}
-
其中关键会话具有一组值。
{“会话”:[NumberLong(“10000000000001”)]}
有没有办法从第二类中检索所有文档,即。只有值是数组而不是简单值的文档?
【问题讨论】:
标签: mongodb mongodb-query
我在 mongodb 集合中有两种类型的文档:
一个关键会话具有简单价值的地方:
{"会话": NumberLong("10000000000001")}
其中关键会话具有一组值。
{“会话”:[NumberLong(“10000000000001”)]}
有没有办法从第二类中检索所有文档,即。只有值是数组而不是简单值的文档?
【问题讨论】:
标签: mongodb mongodb-query
您可以使用这种查询:
db.collectionName.find( { $where : "Array.isArray(this.sessions)" } );
但您最好将所有记录转换为一种类型以保持一致。
【讨论】:
这段代码可以这么简单:
db.c.find({sessions:{$gte:[]}});
说明:
$gt, $lt, $lte 用于标准查询(注意:聚合管道表达式中同名操作符的不同行为)具有相同的功能。我在 MongoDB V2.4.8、V2.6.4 上通过实践证明了这一点。 【讨论】: