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

Mongodb łączy zapytania agregujące

Możesz użyć nieskorelowanych podzapytań dostępnych w MongoDB v3.6

db.Profile.aggregate([
  {
    $match: { is_del: false }
  },
  {
    $lookup: {
      from: "Store",
      as: "stores",
      let: {
        pid: { $toString: "$_id" }
      },
      pipeline: [
        {
          $match: {
            is_del: false,
            $expr: { $eq: ["$$pid", "$id"] }
          }
        },
        {
          $lookup: {
            from: "Item",
            as: "items",
            let: {
              sid: { $toString: "$_id" }
            },
            pipeline: [
              {
                $match: {
                  is_del: false,
                  $expr: { $eq: ["$$sid", "$sid"] }
                }
              },
              {
                $count: "count"
              }
            ]
          }
        },
        {
          $unwind: "$items"
        }
      ]
    }
  }
])

Plac zabaw Mongo

Aby poprawić wydajność, sugeruję przechowywanie identyfikatorów referencyjnych jako ObjectId więc nie musisz ich konwertować na każdym kroku.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tablica agregacji MongoDB z dwoma polami

  2. Czy Azure Cosmos DB nie obsługuje unikatowego indeksu MongoDB/Mongoose?

  3. Sesja mongodb sesji ekspresowej nie utrzymuje się

  4. Funkcje MongoDB w ClusterControl 1.4

  5. MongoDB:nie udało się skonfigurować gniazd podczas uruchamiania