Ich habe eine Situation, in der Datensätze in Mongo DB ist wie:Suche mit dynamischen Feldnamen in MongoDB
{
"_id" : "xxxx",
"_class" : "xxxx",
"orgId" : xxx,
"targetKeyToOrgIdMap" : {
"46784_56139542ecaa34c13ba9e314" : 46784,
"47530_562f1bc5fc1c1831d38d1900" : 47530,
"700004280_56c18369fc1cde1e2a017afc" : 700004280
},
}
Ich habe, um die Datensätze herausfinden, wo untergeordneter Knoten von targetKeyToOrgIdMap einen bestimmten Satz von Werten hat. Das heißt, ich weiß, was der Wert in dem Datensatz in "46784_56139542ecaa34c13ba9e314": 46784 Teil dort sein wird. Und der Feldname ist variabel, seine Kombination aus dem Wert und einer zufälligen Zeichenfolge.
Im obigen Beispiel habe ich 46784, und ich muss alle Datensätze finden, die 46784 in diesem jeweiligen Feld haben.
Gibt es eine Möglichkeit, ich kann einige Regex oder etwas ähnliches oder mit einem anderen Mittel, wo ich die Datensätze, die den Wert, den ich brauche in den Kindknoten des Feldes targetKeyToOrgIdMap haben würde feuern.
Vielen Dank im Voraus
Nicht möglich mit der 'find()' Methode, vielleicht mit 'mapReduce'. Möglicherweise müssen Sie in Erwägung ziehen, Ihr Schema zu ändern, um 'targetKeyToOrgIdMap' zu einem Array von Objekten mit Schlüssel- und Werteigenschaften zu machen, die einfacher abzufragen sind:' "targetKeyToOrgIdMap": [{"id": "46784_56139542ecaa34c13ba9e314", "value": 46784} , { "id": "47530_562f1bc5fc1c1831d38d1900", "Wert": 47530}] ' – chridam
Änderung des Schemas ist nicht möglich. Ich muss vielleicht dieses oder etwas überspringen ... Danke @chridam –