Ich versuche, die emailAddress
Feld und die page_slug
übereinstimmen. Derzeit verwende ich die folgenden, die nur die über Seite im modularSequence matches:Finden Sie das Ergebnis innerhalb von Array of Objects und E-Mail-Adresse Feld
db.getCollection('users').find({"modularSequence.page_slug": "about"}, {"modularSequence.$": 1 })
Dies funktioniert und kehrt:
{
"_id" : ObjectId("5740c631742da6e83389abb4"),
"modularSequence" : [
{
"page_id" : "1",
"sequence" : "m_1",
"category" : "headers",
"page_slug" : "about"
}
]
}
Welche es die Hälfte, was ich will. Ich möchte auch das Feld emailAddress zurückgeben. Ich habe versucht, diese verwenden, aber es gibt alles und mehrere modularen Elemente:
db.getCollection('users').find({$and:[{"emailAddress": '[email protected]'}, {"modularSequence.page_slug": "about"}, {"modularSequence": {$elemMatch: {page_slug:'about'}}}]})
[
{
"emailAddress": "[email protected]",
"modularSequence": [
{
"page_slug": "about",
"category": "headers",
"sequence": "m_1",
"page_id": "1"
},
{
"page_slug": "contact",
"category": "content",
"sequence": "m_4",
"page_id": "2"
}
]
}
]
Wie passe ich sowohl das emailaddress Feld und die modularSequence.page_slug - nur zurückgeben ein Ergebnis, wenn sowohl die E-Mail-Adresse übereinstimmt und die page_slug?
Das ist perfekt, vielen Dank. Ein paar Fragen, nur um zu verstehen, was los ist, im Gegensatz zu nur C & P'in diesem. Ich vermute die "emailAddress": 1 gibt an, dass wir die emailAddress von der obersten Ebene und "modularSequence. $" Wollen: 1 - tut dasselbe, aber für $, um page_slug darzustellen. Die eine Sache, die ich nicht ganz verstehe, ist, warum wir emailAddress & modularSequence zweimal spezifizieren? – DennisTurn
Der erste Parameter von ['find'] (https://docs.mongodb.com/manual/reference/method/db.collection.find/#db.collection.find) ist die Abfrage (welche Dokumente) und die Zweitens ist die Projektion (die Felder innerhalb dieser Dokumente), deshalb sind diese Felder doppelt vorhanden. Das '$' in der Projektion repräsentiert das Array-Element 'modularSequence', das in der Abfrage übereinstimmt. – JohnnyHK
Perfekt, danke @JohnnyHK – DennisTurn