在节点上使用Mongo键按键对象键

时间:2017-09-22 15:49:03

标签: mongodb aggregate nosql

我正在尝试将所有这个对象组合成一个,这个想法是组合所有对象。

我的功能是这样的:

 const index = state.locks.users.findIndex(
  stateUser => stateUser._id === action.payload.customerPayload.accessid

并返回这样的内容:

app.get('/stats/:id(\\d+)/weapon/:weapon', function(req, res, next) {
        db.collection('stats').aggregate( [
            { $match: { _id: parseInt(req.params.id, 10) } },
            { $unwind: "$session" },
            { $addFields: { weapon: { $objectToArray: '$session.weapons.' + sanitize(req.params.weapon) }, _id: false } },
            { $addFields: { weapon: { $arrayToObject: "$weapon" } } },
            { $project: { weapon: "$weapon", _id: false }  }
         ], function(err, doc) {
                if( !err ) {
                    res.json(doc);
                }
                else {
                    console.log(err);
                    res.end();
                }
        });
    });

我的想法是只用键和键来返回一个武器实例。 我已经尝试了$ group和concat数组,但我无法得到我想要的结果......

我想这样:

[
   {
      "weapon":{
         "shots":30,
         "hitbox":{
            "head":7,
            "chest":4
         },
         "kills":4,
         "dmg":590
      }
   },
   {
      "weapon":{
         "shots":46,
         "kills":4,
         "hitbox":{
            "head":3,
            "chest":4,
            "stomach":3,
            "left_leg":2
         },
         "hs":3,
         "dmg":479
      }
   },
   {
      "weapon":{
         "shots":30,
         "hitbox":{
            "head":7,
            "chest":4
         },
         "kills":4,
         "dmg":590
      }
   }
]

0 个答案:

没有答案