簡體   English   中英

如何在mongodb中使用mapreduce?

[英]How to use mapreduce in mongodb?

我在python中有以下代碼:

from pymongo import Connection
import bson

c = Connection()
db = c.twitter

ids = db.users_from_united_states.distinct("user.id")

for i in ids:
    count = db.users_from_united_states.find({"user.id":i}).count()
    for u in db.users_from_united_states.find({"user.id":i, "tweets_text": {"$size": count}}).limit(1):
    db.my_usa_fitness_network.insert(u)

我需要獲取所有用戶,並找到每個用戶的注冊,其中tweets_text的數量等於它在集合中出現的次數(這意味着該文檔包含同一用戶發布的所有tweets)。 然后,我需要將其保存在另一個集合中,或者僅將其分組在同一集合中。

當我運行此代碼時,它給我的文檔數量少於ids數量

我看到了有關mapReduce的一些信息,但是我不知道該如何使用它。

我試圖直接在mongodb上運行另一個代碼,但根本沒有用:

var ids = db.users_from_united_states.distinct("user.id")

for (i=0; i< ids.length; i++){
    var count = db.users_from_united_states.find({"user.id":ids[i]}).count()
    db.users_from_united_states.find({"user.id":ids[i], "tweets_text": {$size: count}).limit(1).forEach(function(doc){db.my_usa_fitness_network.insert(doc)})
}

你能幫我嗎? 我有一個龐大的項目,需要幫助。 謝謝。

[
    {
        "$group": {
            "_id": "$user.id",
            "my_fitness_data": {
                "$push": "$text"
            }
        }
    },
    {
        "$project": {
            "UserId": "$_id",
            "TweetsCount": {
                "$size": "$my_fitness_data"
            },
            "Tweets": "$my_fitness_data"
        }
    }
    ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM