从集合的所有文档中获取数组列表元素的总数

时间:2017-01-11 01:29:38

标签: java mongodb

enter image description here我正在尝试获取我的用户的活动,我试图在我的userinfo表中获得所有用户和跟随所有用户。

我正在使用下面的命令行查询来获取正常工作的情况,并且我得到总计数。

db.userinfo.aggregate([
{ "$group": {
    "_id": null,
    "followersCount": {
        "$sum": {
            "$size": { $ifNull: [ "$followers", [] ] }
        }
    },
    "followingCount": {
        "$sum": {
            "$size": { $ifNull: [ "$i_am_following", [] ] }
        }
    }
}}
])

但是我无法使用java编程复制它。我们可以使用BasicDBObjects在java中编写此查询,还是有其他方法可以执行此操作吗?

以下是单个用户的示例数据。

db.userinfo.insert (
{  
"username" : "user1",
"useremail" : "user1@gmail.com", 
"password" : "password",
"firstname" : "firstname", 
"lastname" : "lastname", 
"dob" : "24-05-1992",
"followers" : [
    {
        "user" : "user2", 
        "from_date" : "2016-12-15 09:59:04"
    },
    {
        "user" : "user3", 
        "from_date" : "2016-12-15 08:59:04"
    }
], 
"i_am_following" : [
    {
        "user" : "user2", 
        "from_date" : "2016-12-15 08:59:04"
    },
    {
        "user" : "user3", 
        "from_date" : "2016-12-15 09:59:04"
    }
]
})

1 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情。

.nav-stacked