2016-10-06 71 views
0

MongoDBクエリを初めて使用しています。私はいくつかのMongoDBの本を読んだが、キーの値をチェックするために文書を照会する方法を見つけることができなかった。例えば、MongoDB特定の配列要素を取得するクエリ

ドキュメントは、次のとおりです。

{ 
"_id" : ObjectId("57efaec42e656319d2a2860b"), 
"Name" : { 
    "First" : "Peter", 
    "Last" : "John" 
}, 
"Math" : { 
    "SA1" : 10, 
    "FA1" : 22, 
    "Grade" : "A", 
}, 
"English" : { 
    "SA1" : 15, 
    "FA1" : 25, 
    "Grade" : "A-", 
}, 
"Science" : { 
    "SA1" : 18, 
    "FA1" : 28, 
    "Grade" : "A+", 
}, 
"Subjects" : [ "English", "Math", "Science" ] 
} 

私は、クエリにしたい:グレード "A" [0] ==件名でますか? TRUE/FALSEを返します。だから、最初にSubject ArrayからSubjectの名前を見つけて、その名前を使ってそのSubjectのGradeを比較しなければなりません。

答えて

0

このロジックは、MongoDBを照会する言語で記述する必要があります。 SQLでは、おそらくサブクエリを含む文を記述します。しかし、MongoDBでは、結果を得るために2つの別々のクエリを書くことをお勧めします。 JavaScriptで

サンプル機能:

function checkIfStudentHasAGrade(){ 

var student = db.collection.findOne("_id":"<input _id>"); 

if(null != student){ 
var subject = student.subject[0]; 

if(student.subject.Grade == "A") 
    return true; 
else 
    return false; 
} 
+0

私は、単一のMongoDBコールアグリゲーションパイプラインを使用するか、$どこかのMapReduceを使用してのいずれかのために楽しみにしています。 –

関連する問題