在获取数据

时间:2017-09-12 05:48:53

标签: node.js mongodb mongoose mongoose-populate

我正在使用两个集合之间的关系,我有像下面这样的集合模式。

// Room database Entry.
{
    "_id" : ObjectId("59b77082f7da4b1b3f64d927"),
    "room_id" : "c3wqqkfndg9cnmi",
    "room_name" : "bcmvnxbcnvsjkfhkjdh",
    "users" : [
        {
            "_id" : ObjectId("59b77082f7da4b1b3f64d926")
        }
    ],
    "__v" : 0
}

//User Database Entry, Related with above Room entry.
{
    "_id" : ObjectId("59b77082f7da4b1b3f64d926"),
    "user_id" : "dyr1qlrtso47vi",

    "__v" : 0
}

当我通过查询房间查找并填充数据时,我发现结果如下。

// Query For Room find and Populate.
room
 .findOne({ room_id: result.data.room_id })
 .populate("users._id")
 .exec(function(err, data){
  });

//Result As Follow
{
   "_id":"59b77082f7da4b1b3f64d927",
   "room_id":"c3wqqkfndg9cnmi",
   "room_name":"bcmvnxbcnvsjkfhkjdh",
   "__v":0,
   "users":[
      {
         "_id":{
            "_id":"59b77082f7da4b1b3f64d926",
            "user_id":"dyr1qlrtso47vi",
            "__v":0
         }
      }
   ]
}

我的要求就像跟随,我不希望_id作为对象的关键。我需要像users这样的对象。

"users":[
      {
         "_id":{
            "_id":"59b77082f7da4b1b3f64d926",
            "user_id":"dyr1qlrtso47vi",
            "__v":0
         }
      }
   ]

Should be 

"users":[
         {
            "_id":"59b77082f7da4b1b3f64d926",
            "user_id":"dyr1qlrtso47vi",
            "__v":0
         }
     ]

0 个答案:

没有答案