db.fs.files.distinct( "metadata.user" )
[
"5027",
"6048",
"6049",
]
下面的X表示我想要显示上述查询中的数字的位置。 db.fs.files.find({' metadata.user':X,' metadata.folder':' inbox'})。count()
我试图找到一种方法来迭代第一个查询中的每个用户,并计算第二个查询中的结果总数。有没有一种简单的方法可以在MongoDB Shell中创建这个查询?
我想要的输出是(只是寻找纯数字):
User Inbox
5027 9872
6048 12
6049 125
更新
我能够完成一些非常接近我想要的东西:
# for x in $(psql -d ****** postgres -c "select user_name from users where user_name ~ '^[0-9]+$' order by user_name;" | tail -n +3 | head -n -2); do mongo vmdb --quiet --eval "db.fs.files.find({ 'metadata.user' : '$x'}).count()"; done| sort -nr
1381
1073
982
但是,我错过了用户名部分。关键是要生成一个用户列表,其中包含邮箱中的邮件数。
答案 0 :(得分:0)
请试试这个
var myCursor = db.collection.find( "metadata.user" );
while(myCursor.hasNext()) {
db.fs.files.find({ 'metadata.user' : X, 'metadata.folder' : 'inbox' }).count();
}