如何计算MongoDB集合中存储的json数组中的元素数量

时间:2013-02-13 05:49:17

标签: json mongodb

我有mongodb集合“mongocollection”,集合中的每个文档都包含两列,第一个是字符串“cid”,它是集合的id,第二个是json数组。

例如:

{ "_id" : "domain.com", "
className" : "UserAgents", 
"userAgents" : [                
"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-CA; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
"Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.6) Gecko/20100628 Ubuntu/10.04 (lucid) Firefox/3.6.6 (.NET CLR 3.5.30729)",
"Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.2) Gecko/20090803 Firefox/3.5.2 Slackware",
"Mozilla/5.0 (X11; U; Linux x86_64) Gecko/2008072820 Firefox/3.0.1"
        ]
}

从mongo cmd行,我可以获取集合中给定文档的内容

db.CorruptUserAgents.find({"_id":"domain.com"}).pretty();

如何获取给定文档的给定数组中的元素数量。实施例

SOMETHING.count();
100

是否可以通过cmd线执行此操作? 我知道我可以获取文档,迭代数组并计算元素,但我想从cmd行执行此操作。

2 个答案:

答案 0 :(得分:2)

您可以使用.findOne()代替_id,因为它会返回单个文档。

所以你可以简单地做这样的事情:

var document = db.CorruptUserAgents.findOne({"_id":"domain.com"});
var count = document.userAgents.length;

答案 1 :(得分:1)

您可以使用以下内容直接获取它:

db.CorruptUserAgents.findOne({"_id":"domain.com"}).userAgents.length;