MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak mogę wywołać właściwości znajdujące się w innej kolekcji w tablicy podrzędnej?

Może być wiele sposobów, jednym z nich jest użycie $lookup jak już próbowałeś

db.place.aggregate([
  { "$match": { "place": "Room 5" } },
  { $unwind: "$type_place_objects"  },
  {
    "$lookup": {
      "from": "type_place",
      "let": { tpo: "$type_place_objects._id" },
      "pipeline": [
        { $unwind: "$objects" },
        {
          $match: {
            $expr: {
              $eq: [ "$objects._id", "$$tpo" ]
            }
          }
        }
      ],
      "as": "join"
    }
  },
  {
    $addFields: {
      "join": { "$arrayElemAt": [ "$join", 0]
      }
    }
  },
  {
    $addFields: { "type_place_objects.name": "$join.objects.name" }
  },
  {
    $group: {
      _id: "$_id",
      place: { $first: "$place" },
      type_place_objects: { "$addToSet": "$type_place_objects" }
    }
  }
])

Praca Plac zabaw Mongo




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Porównanie dat w Mongodb ze sterownikiem C# LINQ

  2. Przechowuj plik obrazu w danych binarnych w schemacie mangusty i wyświetlaj obraz w formie html

  3. Wysyłasz zapytania do MongoDB GridFS?

  4. Status MongoDB nie powiódł się po edycji mongo.conf (zakończono kod, status=2)

  5. Importuj dane CSV jako tablicę w MongoDB za pomocą mongoimport