Ich frage mich, wie ich Arrays von (verschachtelten) Objekte in Mongoose vergleichen kann.Abfrage Vergleichen von Arrays von Objekten
In Anbetracht der Daten unten, möchte ich Ergebnisse erhalten, wenn die name
Eigenschaften übereinstimmen. Könnte mir jemand dabei helfen?
Organisation.find({
$or: [
{ "category_list": { $in: cat_list } },
{ "place_topics.data": { $in: place_tops } }
]
}
)
Lassen Sie uns sagen, dass dies die in meinem MongoDB gespeicherten Daten:
"category_list": [
{
"id": "197750126917541",
"name": "Pool & Billiard Hall"
},
{
"id": "197871390225897",
"name": "Cafe"
},
{
"id": "218693881483234",
"name": "Pub"
}
],
"place_topics": {
"data": [
{
"name": "Pool & Billiard Hall",
"id": "197750126917541"
},
{
"name": "Pub",
"id": "218693881483234"
}
]
}
Und lassen Sie uns sagen, dass diese die Arrays I gegen (fast die gleichen Daten) vergleichen wollen:
let cat_list = [
{
"id": "197750126917541",
"name": "Pool & Billiard Hall"
},
{
"id": "197871390225897",
"name": "Cafe"
},
{
"id": "218693881483234",
"name": "Pub"
}
]
let place_tops = [
{
"name": "Pool & Billiard Hall",
"id": "197750126917541"
},
{
"name": "Pub",
"id": "218693881483234"
}
]
Ist das Folgende wahr? Wir haben nur dann eine Übereinstimmung, wenn: - die zu vergleichenden Arrays die gleichen Längen wie ihre entsprechenden Arrays haben; - sie enthalten den gleichen Satz von IDs; - Datensätze mit derselben ID sollten denselben Namen haben, andere Felder können unterschiedlich sein. – cbartosiak
Nun, tatsächlich enthalten die in MongoDB gespeicherten Daten auch eine Zeichenfolge _id, so dass sie falsch ist. –
Ja, aber Sie haben geschrieben, dass Sie daran interessiert sind, Namen zu vergleichen, also nahm ich an, Sie wollten überprüfen, ob der Name trotz Übereinstimmung mit der ID derselbe war (aktuell oder smth). Es sieht so aus, als hätte ich dich missverstanden. – cbartosiak