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

uzyskać odpowiednie informacje o wartości obiektu w MongoDB

  • $arrayElemAt aby pobrać pierwszy element z dic tablica
  • $objectToArray przekonwertuj A obiekt do tablicy
  • $reduce do iteracji pętli elementu powyżej przekonwertowanej tablicy i sprawdzenia warunku, jeśli _id.A pasuje do danych A następnie zwróć określone pole,
  • wykonaj ten sam proces dla B i C
db.collection.aggregate([
  {
    $addFields: {
      dic: { $arrayElemAt: ["$dic", 0] }
    }
  },
  {
    $project: {
      _id: 1,
      dic: {
        A: {
          $reduce: {
            input: { $objectToArray: "$dic.data.A" },
            initialValue: "Not Found",
            in: {
              $cond: [
                { $eq: ["$$this.k", "$_id.A"] },
                "$$this.v.name",
                "$$value"
              ]
            }
          }
        },
        B: {
          $reduce: {
            input: { $objectToArray: "$dic.data.B" },
            initialValue: "Not Found",
            in: {
              $cond: [
                { $eq: ["$$this.k", "$_id.B"] },
                "$$this.v.description",
                "$$value"
              ]
            }
          }
        },
        C: {
          $reduce: {
            input: { $objectToArray: "$dic.data.C" },
            initialValue: "Not Found",
            in: {
              $cond: [
                { $eq: ["$$this.k", "$_id.C"] },
                "$$this.v.description",
                "$$value"
              ]
            }
          }
        }
      }
    }
  }
])

Plac zabaw




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak skonfigurować wielkość próbkowania sesji iskrowej w Java Spark

  2. Wyrażenie MongoDB Compass Filter do wyrażenia Go bson.M

  3. Wysyłaj wiele obiektów JSON jednocześnie za pomocą Express i Postman

  4. MongoDB sortuj według tylko istnieje wpis, klucz z wartością jako pierwszy i klucz z wartością null lub nie istnieje jako ostatni

  5. OSTRZEŻENIE Błąd:Kod Meteor musi zawsze działać w światłowodzie, gdy metoda wywołania na serwerze