2017-08-21 1 views
0

Ich versuche, ein Array zu filtern und nur die Objekte zurückzugeben, die die Rolle 'admin' haben.Wie verschachtelte Array mit MongoDB zu suchen?

Das Feld, das die Rolle enthält, ist jedoch unter mehreren Ebenen im Array verschachtelt. Was ist die korrekte MongoDB-Syntax, um den Wert zu erhalten?

Unten ist ein Beispiel dafür, wie es aussieht. Es geht Rollen> Firmenname> 0>Wert.

 _id:"Pgxoyv" 
     createdAt:"Fri Aug 18 2017" 
     roles: {} 1 key 
      Company Name: [] 1 item 
        0:"admin" 

Ich habe versucht, Filterung, aber der Raum zwischen „Firmennamen“ Fehler auch zu werfen. Jede Hilfe wäre willkommen. Hier ist, was ich bisher versucht, aber diese keinen Wert zurückgegeben:

Meteor.users.find({ 
      roles: 'admin' 
     }).fetch(); 
+0

Können Sie ein Beispiel für die tatsächliche JSON-Dokument yo geben Du arbeitest mit? –

Antwort

0

Sie können versuchen,

Meteor.users.find({ 
     roles.companyName: 'admin' 
    }).fetch(); 
0

Ihre Daten sieht wie folgt aus der Annahme:

{ 
    "roles": { 
     "Company Name": [ 
      "admin" 
     ] 
    } 
} 

Sie können eine

tun
Meteor.users.find({"roles.Company Name": "admin"}) 
Verwandte Themen