MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tìm nạp dữ liệu từ 2 bộ sưu tập trong mongodb trong một truy vấn

Bạn có thể thử tổng hợp bên dưới với mongodb 3.6 trở lên nhưng tôi nghĩ bạn nên sử dụng hai truy vấn vì đối với tập dữ liệu lớn $lookup đường ống sẽ vi phạm giới hạn BSON trong tổng số 16mb . Nhưng nó cũng phụ thuộc vào $match của bạn điều kiện hoặc $limit . Nếu chúng được áp dụng cho $lookup thì quá trình tổng hợp của bạn sẽ hoạt động hoàn hảo.

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. Lấy dữ liệu lồng nhau từ MongoDB vào khung dữ liệu Pandas

  2. Lặp lại trên tất cả cơ sở dữ liệu Mongo

  3. MongoDB $ tanh

  4. Mongoose insert

  5. Cách chờ trong Node.js