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

Jak mogę zwrócić element, którego szukam w zagnieżdżonej tablicy?

Użyj metody powłoki findAndModify do własnych potrzeb.

Nie możesz jednak użyć znaku pozycyjnego $ więcej niż raz podczas projekcji w MongoDb, więc być może będziesz musiał sam to śledzić po stronie klienta.

Użyj arrayFilters aby zaktualizować głęboko zagnieżdżony dokument podrzędny, zamiast pozycyjnego operatora all $[] .

Poniżej znajduje się działające zapytanie -

var query = {
    universe: 'comics'
};

var update = {
    $set: {
        'saga.$[outer].characters.$[inner].character': 'lobezno',
        'saga.$[outer].characters.$[inner].picture': '618035022354.png',
    }
};

var fields = {
    'saga.characters': 1
};

var updateFilter = {
    arrayFilters: [
        {
            'outer.name': 'x-men'
        },
        {
            'inner.character': 'wolverine'
        }
    ]
};

db.collection.findAndModify({
    query,
    update,
    fields,
    arrayFilters: updateFilter.arrayFilters
    new: true
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Najlepszy sposób na hostowanie MongoDB na DigitalOcean

  2. Projekcja warunkowa w mongodb przy użyciu sterownika c#

  3. Z mat-wybierz zapisz dane do bazy danych MongoDB

  4. Mongo próbuje automatycznie połączyć się z portem 27017 (localhost)

  5. Przechowuj dataURL w MongoDB, aby uzyskać do niego dostęp za pośrednictwem lokalnego adresu URL (JS)