sql >> Database >  >> NoSQL >> MongoDB

Hoe vind je het overeenkomende record in Mongodb?

Dit is het gedrag van het filteren van ingesloten documenten op meerdere niveaus, normaal gesproken zou het overeenkomende filter het hele document retourneren, niet de subsets.

Gewoonlijk positional operator $ gebruikt om overeen te komen met de subdocumenten in updates . Maar de functie is nog niet geïmplementeerd in retourspecificaties.

Er is al een openstaand probleem in mongo Ondersteuning voor positionele ($) operator in velden om specificatie terug te geven . (Gelieve in te loggen om te stemmen als je de functie echt nodig had)

Dus je moet je schema opnieuw ontwerpen om dit aan te kunnen, het kan zo zijn

db.test.insert({"person" : [ { "id":1, "details" : { "name" : "Aswini", "Age" : 10 }}]})
db.test.insert({"person" : [ { "id":2, "details" : { "name" : "Mahesh", "Age" : 11}}]})

db.test.find({"person.id":1},{'person.details':1})


  1. nodejs mangoest bulkupdate

  2. Tijdens het opslaan van een verzameling maakt MongoDB een indexnaam die te lang is en de limiet van 127 bytes overschrijdt. Hoe dit op te lossen. kan ik indexering uitschakelen?

  3. MongoDB Java Driver Update Subdocument

  4. Wat moet ik kiezen:MongoDB/Cassandra/Redis/CouchDB?