sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan laver man en forespørgsel i denne indlejrede dokumentstruktur (MongoDB)?

Jeg har svaret på dette et par gange om at hente underdokumenterne alene fra mongo-samlingen her , og her

Der er simpelthen ingen måde at gøre dette på i øjeblikket. Dette er adfærden ved filtrering af integrerede dokumenter på flere niveauer, normalt ville det matchende filter returnere hele dokumentet, ikke undersættene.

Der er allerede to udestående problemer i mongo relateret til denne positionelle ($) operator i felter for at returnere specifikation og Evne til at gøre brug af et underdokuments data, hvis indhold blev brugt til at opfylde en forespørgsel ved hjælp af $-operatoren . (Log venligst ind for at stemme, hvis du virkelig havde brug for funktionen)

Og dit alternative skema er heller ikke nyttigt her.

så du er nødt til at gemme hver funktion i et separat dokument som dette for at få det til at fungere, som du ønskede

funktion 1

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

funktion 2

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

og spørger

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

vil kun returnere den specifikke funktion




  1. Kun forespørge underdokument og returnere matchende underdokument

  2. Installer mongodb på azure devops-vært til testkørsel

  3. Spring Boot opsætning af MongoDB-depot

  4. Spring Mongo Populator én efter én