sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB – Jak vrátím dokumenty s jako ?

Toho můžete dosáhnout pomocí agregačního rámce pomocí $group seskupit dokumenty podle device_id , za kterým následuje arrayToObject získat hodnotu jako klíč:

dotaz vypadá takto:

db.collection.aggregate([{
  "$group": {
    "_id": "$device_id",
    "dt": {
      "$push": "$date"
    }
  }
}, {
  "$replaceRoot": {
    "newRoot": {
      "$arrayToObject": {
        "$concatArrays": [
          [{
            "k": "$_id",
            "v": "$dt"
          }]
        ]
      }
    }
  }
}])

výsledky:

[
  {
    "D4YK2-R2D20-KYPI9": [
      "2018-04-01T00:00:00.000Z"
    ]
  },
  {
    "ML39A-341D4-UI041": [
      "2018-03-28T00:00:00.000Z",
      "2018-03-29T00:00:00.000Z"
    ]
  }
]

můžete to zkusit zde:mongoplayground.net/p/t9AjMA0nXCn




  1. Limit =1 =1 ms, Limit> 1 =150 ms (mongo-tavení)

  2. Verze mongodb Meteor.js

  3. Vytváření vícepolních indexů v Mongoose / MongoDB

  4. Jaký je rozdíl mezi safe:true a safe:false ve spojení s mongoskinem? a jak to použít?