2016-04-15 10 views
0

Ich möchte Informationen von Patienten in meinem Array abrufen, aber ich kann den Befehl nicht finden, das auf der MongoDB-Website zu tun. Könnte mir jemand bitte den richtigen Befehl zum Abrufen von Daten zeigen, zum Beispiel möchte ich den Namen meiner Patienten abrufen? DieseIch möchte Informationen über Patienten in meinem Array abrufen

{ 
    "_id" : ObjectId("57113238bde91693e9ff69e7"), 
    "docname" : "Arthur Hovsepyan", 
    "job_desc" : "Hepatologist", 
    "sex" : "male", 
    "jobtype" : "fulltime", 
    "office" : "room 448", 
    "email" : "[email protected]", 
    "phone_number" : 862124343, 
    "address" : "68 Peterburg street,waterford", 
    "hours" : 12, 
    "patients" : [ 
     { 
      "name" : "Jenny Power", 
      "ward_no" : 1, 
      "sex" : "female", 
      "termdays" : 2, 
      "illness_type" : "minor", 
      "age" : 22, 
      "phone_number" : 877285221, 
      "address" : "63 Johnston street ,Waterford" 
     }, 
     { 
      "name" : "Marie Peters", 
      "ward_no" : 2, 
      "sex" : "female", 
      "termdays" : 0, 
      "illness_type" : "minor", 
      "age" : 21, 
      "phone_number" : 862145992, 
      "address" : "99 Grange,Waterford" 
     }, 
     { 
      "name" : "Philip John", 
      "ward_no" : 2, 
      "sex" : "male", 
      "termdays" : 10, 
      "illness_type" : "serious", 
      "age" : 31, 
      "phone_number" : 861125981, 
      "address" : "12 Monvoy Bridge,Waterford" 
     }, 
     { 
      "name" : "Marta Peters", 
      "ward_no" : 3, 
      "sex" : "female", 
      "termd7ays" : 0, 
      "illness_type" : "minor", 
      "age" : 31, 
      "phone_number" : 862125981, 
      "address" : "100 Grange Manor,Waterford" 
     } 
    ] 
} 
+0

Haben Sie meinen Sie nur eine Liste von Patientennamen wollen, sonst nichts? – BanksySan

+0

Ja, ich möchte eine Liste von Patientennamen – ebatinstitute

Antwort

1

kann einfach durchgeführt werden mit dem .aggregate()-Methode und die $map Operator.

db.collection.aggregate([ 
    { "$project": { 
     "patients": { 
      "$map": { "input": "$patients", "as": "p", "in": "$$p.name" } 
     } 
    }} 
]) 

Welche zurück:

{ 
    "_id" : ObjectId("57113238bde91693e9ff69e7"), 
    "patients" : [ "Jenny Power", "Marie Peters", "Philip John", "Marta Peters" ] 
} 

Sie auch .distinct verwenden können, aus der Sammlung alle Namen zu bekommen.

db.collection.distinct("patients.name") 

Welche zurück:

[ "Jenny Power", "Marie Peters", "Marta Peters", "Philip John" ] 
Verwandte Themen