2016-06-10 5 views
0

Ich versuche, eine Zeichenfolge an meine Mongodb-Abfrage übergeben, aber wenn es innerhalb der Abfrage geht es doppelte Anführungszeichen der Zeichenfolge hinzugefügt.wie String ohne Anführungszeichen in mongodb Abfrage übergeben

ich vorbei dies als String an den Kriterien, weil sie dynamisch als String gebildet wird:

str1={AccId:8,WSId:24237,CaseID:{$in:[4697516]},MEId:{$in:[4697523]},ConfigID:{$‌​in:[4697520]}} 

var criteria = { str1 }, 

Also, wenn ich dieses letzte Kriterium zu db.coll.aggregate vorbei bin, es str1 und doppelte Anführungszeichen anfügt zur Abfrage.

query forming={"$match":{"str1":"{AccId:8,WSId:24237,CaseID:{$in:[4697516]},MEId:{$in:‌​[4697523]},ConfigID:{$in:[4697520]}}"} 

query desired= {"$match":{AccId:8,WSId:24237,CaseID:{$in:[4697516]},MEId:{$in:[4697523]},Config‌​ID:{$in:[4697520]}}} 

Wie kann ich die gewünschte Abfrage erhalten?

+0

Was Sie versuchen, mit 'Kriterien = zu tun ([{$ match: Kriterien}])'? – Shrabanee

+0

Haben Sie versucht wie 'db.collname.aggregate ([{$ match: criteria}])' so etwas? – Shrabanee

+0

oh sorry, es ist criteria1 = ([{$ match: criteria}]) – techie

Antwort

0

Was Sie wirklich tun möchten, ist die Pipeline mit Methoden zur Initialisierung des Objekts wie der bracket notation zu erstellen. Außerdem müssen Sie den Operator $in nicht mit einem einzelnen Arrayelement in Ihrer Abfrage verwenden, sondern das Feld direkt auf dem Wert abfragen.

dieses Beispiel folgen, das Konzept zu erhalten:

var criteria = { 
     'AccId': 8, 
     'WSId': 24237, 
     'CaseID': 4697516, 
     'MEId': 4697523, 
     'ConfigID': 4697520 
    }, 
    match = {}; 

match["$match"] = criteria; 
db.collection.aggregate([match]); 
+0

i eine Zeichenfolge an diesen Kriterien übergeben wollen, weil diese Zeichenfolge dynamisch bildende, str1 = {Accid: 8, WSID: 24237, CaseID: {$ in: [4697516]}, MEId: {$ in: [4697523]}, ConfigID: {$ in: [4697520]}} var kriterien = { str1 }, also wenn ich dieses finale kriterium an db übergebe. coll.aggregate, fügt es str1 und doppelte Anführungszeichen an die gewünschte Abfrage an. Abfrage forming = {"$ match": {"str1": "{AccId: 8, SSID: 24237, CaseID: {$ in: [4697516]}, MEId: {$ in: [4697523]}, ConfigID: {$ in: [4697520]}} "} Abfrage gewünscht = {" $ match ": {accid: 8, WSID: 24237, CaseID: {$ in: [4697516]}, Meid: {$ in: [4697523 ]}, ConfigID: {$ in: [4697520]}}} – techie

+0

@ritika Danke für die Aufklärung, aber können Sie bitte diese Informationen in Ihre Frage nicht in den Kommentaren hinzufügen? – chridam

+0

sicher, ich habe hinzugefügt – techie

Verwandte Themen