Mongoose mapreduce嵌入式文档数组

时间:2015-10-11 07:49:14

标签: node.js mongodb join mongoose mapreduce

在猫鼬& node.js

我想在一个查询中获取用户的朋友(状态正常)设备信息。

UserSchema位于下方。

var UserSchema = new Schema({
    id : { //emaild
        type : String,
        unique : true
    },
    device : []
    ade : {

        friend : [FriendSchema]
    } 
});

FriendSchema。

var FriendSchema = new Schema({
    user_id : {
        type : Schema.Types.ObjectId,
        ref  : 'User'
    },
    status : {
        type : String,
        'enum' : ['ok', 'rec', 'rec_none', 'app', 'deny'] 
    },
});

我试过这样的。但是,有很多问题......

  1. 从客户端获取主要用户ID。
  2. 查询主要用户信息。
  3. for循环,获取朋友的user_id,状态为“ok”'并存储数组。
  4. 再次查询好友信息并存储。
  5. 返回客户。
  6. 我用谷歌搜索,有些页面让我做mapreduce,但我不知道怎么做。

    添加----------------------

    用户数据库

    {
        "_id" : ObjectId("55f2258cef24cf80230e0b36"),
        "id" : "a@gmail.com",
        "device" : [
            {
                "os" : "iOS",
                "version" : "8.4.1",
                "token" : "(null)",
                "locale" : "en"
            }
        ],
        "ade" : {
            "friend" : [
                {               
                    "status" : "app",
                    "user_id" : ObjectId("55f22820ef24cf80230e0b37")
                }
            ]
        }
    }
    {
        "_id" : ObjectId("55f66fefef24cf80230e0b3a"),
        "id" : "b@gmail.com",
        "ade" : {
            "friend" : [
                {
                    "status" : "ok",    
                    "user_id" : ObjectId("55f22820ef24cf80230e0b37")
                }
            ]
        },
        "device" : [
            {
                "os" : "Android",
                "version" : "6.0",
                "token" : "t",
                "locale" : "en"
            },
            {
                "os" : "Android",
                "version" : "6.0",
                "token" : "t",
                "locale" : "en"
            }
        ]
    }
    {
        "_id" : ObjectId("55f22820ef24cf80230e0b37"),
        "id" : "c@gmail.com",
        "ade" : {
            "friend" : [
                {
                    "status" : "ok",
                    "user_id" : ObjectId("55f66fefef24cf80230e0b3a")
                },
                {
                    "status" : "rec",
                    "user_id" : ObjectId("55f2258cef24cf80230e0b36")
                }
            ]
        },
        "device" : [
            {
                "os" : "Android",
                "version" : "4.4.2",
                "token" : "t",
                "locale" : "en"
            }
        ]
    }
    

0 个答案:

没有答案