sql >> Database >  >> NoSQL >> MongoDB

mongodb - geneste subdocumenten afwikkelen

Je kunt onderstaande aggregatie proberen vanaf mongodb 3.6 en hoger

List.aggregate([
  { "$match": { "_id": id }},
  { "$lookup": {
    "from": Items.collection.name,
    "let": { "items": "$items" },
    "pipeline": [
      { "$match": { "$expr": { "$in": [ "$_id", "$$items" ] } } }
    ],
    "as": "items"
  }},
  { "$lookup": {
    "from": Lists.collection.name,
    "let": { "included_lists": "$included_lists", "items": "$items" },
    "pipeline": [
      { "$match": { "$expr": { "$in": [ "$_id", "$$included_lists" ] } } },
      { "$lookup": {
        "from": Items.collection.name,
        "let": { "items": "$items" },
        "pipeline": [
          { "$match": { "$expr": { "$in": [ "$_id", "$$items" ] } } }
        ],
        "as": "items"
      }},
      { "$project": { "allItems": { "$concatArrays": [ "$$items", "$items" ]}}}
    ],
    "as": "included_lists"
  }},
  { "$unwind": "$included_lists" },
  { "$replaceRoot": { "newRoot": "$included_lists" }}
])


  1. Wat is een cursor in MongoDB?

  2. mongolastic duurt lang om een ​​collectie te indexeren

  3. Mongo-update binnen een dubbel geneste array

  4. Beste programmeertaal om het DBSCAN-algoritme te implementeren dat een MongoDB-database opvraagt?