2017-09-21 2 views
0

Ich versuche, eine Projekt-App zu schreiben, die medizinische Daten überwacht, die mit einem MEAN-Stack implementiert wurden. Ich habe vor, die Daten zu simulieren, indem ich ungefähr jede Sekunde einen 'VitalsTick' aussende. Diese werden als Filialdokument im Patientendokument gespeichert.Verwenden von Mongoose, um auf Werte in einem Array zuzugreifen

var mongoose = require('mongoose'); 

var vitalsTickSchema = new mongoose.Schema({ 
    time : {type: Number, min : -299, max: 300, required: true}, 
    pulse : {type: Number, required:false}, 
    rhythm : {type: String, required: false}, 
    resp : {type: Number, required: false}, 
    spo2 : {type: Number, required: true} 
}); 

var VitalsTick = mongoose.model('vitalsTick', vitalsTickSchema, 'vitalsTick'); 

module.exports = VitalsTick; 

und

var vitalsTickSchema = mongoose.model('vitalsTick').schema; 

var patientRecordSchema = new mongoose.Schema({ 
    name : {type: String, required: true}, 
    mrn : {type: Number, required: true}, 
    dob : {type: Date, required: false}, 
    address : {type: String, required: false}, 
    mhx : {type: [{history : {type: String, required: false}}]}, 
    vitalTicks : [vitalsTickSchema] 
}); 

var PatientRecord = mongoose.model('patientrecord', patientRecordSchema, 'patients'); 

module.exports = PatientRecord; 

ich einige Python geschrieben haben Testdaten in json zu erzeugen, die jsonlint mit validiert und dann auf MongoDB importiert. Bevor ich zum nächsten Schritt der Entwicklung übergehe, möchte ich sicherstellen, dass die Schemas wie geplant funktionieren. Mit Mongo:

> db.patients.find() 
{ "_id" : ObjectId("59c2fc69b9e18eb6ad18c063"), "name" : "Testie 
McTestface", "mrn" : "11111111", "dob" : "", "address" : "", "mhx" : [ { } ], 
"vitalTicks" : [ { "time" : 0, "pulse" : 75, "rhythm" : "sinus", 
"rr" : 20, "SpO2" : 96 }, ... ] } 

ist mein Problem so:

> db.patients.find({vitalTicks: {time : {$eq :0}}},{'vitalTicks.$':1}) 
> 

Soweit ich

{ "_id" : ObjectId("59c2fc69b9e18eb6ad18c063"), "vitalTicks" : [ { 
"time" : 0, "pulse" : 75, "rhythm" : "sinus", 
"rr" : 20, "SpO2" : 96 } ] } 

zurückkehren sollte

sagen kann, aber es gibt nichts zurück.

Prost.

Antwort

1

Nein, eigentlich ist es eine Reihe von eingebetteten Dokumente, macht die folgende Abfrage den Job:

db.patients.find({"vitalTicks.time" : 0}, {"vitalTicks.$":1}) 

Hoffnung, das hilft.

Verwandte Themen