2016-05-07 2 views
0

私はMySQLの世界から来たので、mongoのクエリは、私が実際にmongoのスタイルのクエリを理解できないと考えるのは少し難しいです。私は文字列を見つけるためのクエリを作成しようとしています。問題はmongodbクエリに関する私の非常に原始的な知識からです。私が行ったクエリは機能していません。私はmongooseでもmongoシェルでそれを試しました。Mongo検索クエリを作成するには?

スキーマ:

mongoose.Schema({ 
     doctorID : String, 
     patientIDList : Array // array of strings 
    }); 

クエリの目的:

私はdoctorIDで医師を見つけ、その後、ID xxxためpatientIDListの内側に見てみたいです。 patientIDListxxxが含まれていない場合は、リストにxxxを追加します。それ以外の場合は何も追加しません。

問合せ:

2つのクエリは私が私が間違っているのは何

MyModel.findOne({'doctorID':newAppointment.doctorID}, {'patientIDList' : newAppointment.patientID}, function(err){...}); 

MyModel.findOne({'doctorID': newAppointment.doctorID, 'patientIDList': newAppointment.patientID}, function(err){...}); 

を試してみましたか?どのようにクエリを作成できますか?

+0

誰かが – user2498079

答えて

0

SQLからNoSQL DBに切り替えるのは常に難しいことです。あなたがしようとしているのは、配列に値が存在するかどうかを調べることです。配列が文字列配列の場合は、単に配列の値を照会することができます。

MyModel.findOne({doctorID : newAppointment.doctorID}, {patientIDList :newAppointment.doctorID}, function(err, res){ 
    console.log(err, res); 
}) 

さらに読み:https://docs.mongodb.com/manual/tutorial/query-documents/#match-an-array-element

関連質問:Find document with array that contains a specific value

+0

は、このエラーを与える助けてください:E2 [エラー:Arrayで$ eleMatchを使用することはできません]を – user2498079

関連する問題