0

我有 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 行执行此操作。

4

2 回答 2

2

您可以.findOne()改用 ,因为您正在查找_id,它将返回一个文档。

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

var document = db.CorruptUserAgents.findOne({"_id":"domain.com"});
var count = document.userAgents.length;
于 2013-02-13T05:57:38.297 回答
1

您可以通过以下方式直接获取它:

db.CorruptUserAgents.findOne({"_id":"domain.com"}).userAgents.length;
于 2016-06-21T11:28:18.573 回答