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