2017-05-11 4 views
0

Erstellung habe ich eine Mongo-Abfrage, die ich durch die Bereitstellung sowohl die Einheit und Einheit-ID, um die AbfrageDynamisch Mongo Abfrageobjekt

dynamisch aus meinem Javascript-Code

Ich möchte erstellen die Abfrage dynamisch ausgeführt werden soll Da ich habe folgende Zuordnungen

var EntityMapping = { 
    order: "orderState", 
     client: "client", 
     clientRelationship: "clientRelationship" 
}; 

var EntityIdMapping = { 
    order: "orderId", 
     client: "ctnId", 
     clientRelationship: "crIdentification" 
}; 

wenn ich also passieren Werte für Unternehmen (Auftrag, Kunden oder clientRelationship) ich soll eine Hierarchie von EntityMapping und EntityIdMapping bekommen, die ich dann in der Abfrage verwenden kann

var query = {}; 
query[entity.EntityMapping].[entity.EntityField] = 45;  // THATS WHERE THE PROBLEM IS. NEED A VALID SYNTAX FOR THIS 
mongo_collection.find(query, function(err, c) {}); 
+0

Können Sie uns zeigen Sie Ihre DB-Struktur, so dass es leichter sein wird, Ihr Problem zu lösen? – Shrabanee

Antwort

1

Sie wollen eine verschachtelte Objekt Abfrage mit dynamischen Tasten ein und b erstellen. Wenn Sie das untergeordnete Objekt der ersten Ebene nicht zuerst initialisieren, erhalten Sie eine Fehlermeldung, dass query [a] nicht definiert ist und keine Eigenschaft namens b hat.

var query = {}; 
query[a] = {}; // Initialize top-level child object 
query[a][b] = 45; 

Mit ES6, dies wäre einfacher (http://es6-features.org/#ComputedPropertyNames):

var query = { 
    [a]: { 
    [b]: 45 
    } 
}