MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Ambil data dari 2 koleksi di mongodb dalam satu kueri

Anda dapat mencoba agregasi di bawah ini dengan mongodb 3.6 dan di atas tetapi saya pikir Anda harus menggunakan dua kueri karena untuk kumpulan data besar $lookup pipeline akan melanggar batas BSON dari 16mb . Tetapi juga Itu tergantung pada $match Anda kondisi atau $limit . Jika diterapkan ke $lookup pipeline maka agregasi Anda akan bekerja dengan sempurna.

db.OrderType1.aggregate([
  { "$limit": 1 },
  { "$facet": {
    "collection1": [
      { "$limit": 1 },
      { "$lookup": {
        "from": "OrderType1",
        "pipeline": [{ "$match": { } }],
        "as": "collection1"
      }}
    ],
    "collection2": [
      { "$limit": 1 },
      { "$lookup": {
        "from": "OrderType2",
        "pipeline": [{ "$match": { } }],
        "as": "collection2"
      }}
    ]
  }},
  { "$project": {
    "data": {
      "$concatArrays": [
        { "$arrayElemAt": ["$collection1.collection1", 0] },
        { "$arrayElemAt": ["$collection2.collection2", 0] },
      ]
    }
  }},
  { "$unwind": "$data" },
  { "$replaceRoot": { "newRoot": "$data" } }
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $arrayToObject

  2. Bagaimana menghubungkan ke instans MongoDB EC2

  3. Java&Mongo:dapatkan objek di mana bidang ada

  4. Hubungkan R ke mongoDB jarak jauh dengan rmongodb

  5. Kesalahan ketergantungan run-time Streaming Reaktif MongoDB dengan Konektor Alpakka Mongo ClassNotFoundException