sql >> Database >  >> NoSQL >> MongoDB

Filter arrays in mongodb

  • $map om de lus van all_users te herhalen reeks
  • $cond controleer de voorwaarde als id is in geselecteerde gebruikers id geef dan "ja" terug, anders "nee" in selected veld
  • $mergeObject om huidig ​​gebruikersobject samen te voegen met hierboven selected veld
db.collection.aggregate([
  {
    $project: {
      all_users: {
        $map: {
          input: "$all_users",
          in: {
            $mergeObjects: [
              "$$this",
              {
                selected: {
                  $cond: [
                    { $in: ["$$this.id", "$selected_users.id"] },
                    "yes",
                    "no"
                  ]
                }
              }
            ]
          }
        }
      }
    }
  }
])

Speeltuin



  1. Subdocumenten ophalen die overeenkomen met de maximale waarde in de array

  2. Hoe gegevens van MongoDB naar een eenvoudige array te krijgen met Node.JS en Mongoose?

  3. Meteoor mongo gebruiken op localhost maar met externe database

  4. Meest populaire NoSQL-databases die worden ondersteund door ClusterControl