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

Uzyskaj podzbiór tablicy w mongodb za pomocą źródła tablicy

Wystarczy $filter tablicę i zachowaj tylko te dokumenty podrzędne, w których wartość jest podzbiorem tablicy wejściowej. Zwróć uwagę, że wartość tutaj jest jedna tablica elementów, gdzie element jest osadzonym polem value .

let fruits = ["apple","banana","coconut"];

db.collection.aggregate([
    { "$project": { 
        "Element": { 
            "$filter": { 
                "input": "$Element", 
                "as": "el", 
                "cond": { 
                    "$setIsSubset": [ [ "$$el.Value" ], fruits ] 
                 }
            }
        }
    }}
])

Począwszy od MongoDB 3.4* możesz użyć $in operator w $project scena.

db.collection.aggregate([
    { "$project": { 
        "Element": { 
            "$filter": { 
                "input": "$Element", 
                "as": "el", 
                "cond": { 
                    "$in": [ "$$el.Value", fruits ] 
                 }
            }
        }
    }}
])

*Nieopublikowana wersja MongoDB w momencie pisania tego tekstu




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Używanie dopasowania ze zmiennymi dokumentu wejściowego

  2. Mongodb zlicza wszystkie elementy tablicy we wszystkich obiektach spełniających kryteria

  3. Błąd rzutowania JSON.NET podczas serializacji Mongo ObjectId

  4. Jak wyeksportować wszystkie kolekcje w MongoDB?

  5. $push i $set w tej samej aktualizacji MongoDB