sql >> Database >  >> NoSQL >> MongoDB

Hoe maak je een query in deze geneste documentstructuur (MongoDB)?

Ik heb dit een paar keer beantwoord over het alleen ophalen van de subdocumenten uit de mongo-verzameling hier , en hier

Er is gewoon geen manier om dit momenteel te doen. 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.

Er zijn al twee openstaande problemen in mongo met betrekking tot deze positionele ($) operator in velden om specificatie terug te geven en Mogelijkheid om gebruik te maken van de gegevens van een subdocument waarvan de inhoud werd gebruikt om te voldoen aan een zoekopdracht met de operator $ . (Gelieve in te loggen om te stemmen als je de functie echt nodig had)

En je alternatieve schema is hier ook niet nuttig.

dus je moet elke functie op deze manier in een apart document opslaan om het te laten werken zoals je wilde

functie 1

{
'_id': SomeObjectId,
'name' :'some name',
'value': 'feature 1',
'some_field' : 'zzz'
}

functie 2

{
'_id': SomeObjectId,
'name' :'some name',
'value': 'feature 2',
'some_field' : 'zzz'
}

en bevragen

db.features.find({'_id':someobjectid})

zal alleen de specifieke functie retourneren




  1. hoe mapreduce te gebruiken in het subdocument mangoest / mongodb?

  2. Hoe kan ik 1 miljoen records asynchroon op Mongodb opslaan?

  3. MongoDB:BSON naar JSON

  4. Best practices voor MongoDB-beveiliging