2017-10-30 13 views
0

特定のユーザーの下にレコードがあるかどうかをチェックしたいと思います。構造はこのようなものです。Mongo dbネストされた配列にレコードがある場合

"_id" : "wYdcaRQqtmE9uPxAv", 
"profile" :{ 
    "name": "John Smith", 
    "records": [ 
     { 
     "classId": "7Smq5sGWvAd94Eewr", 
     "course": "5CDEezDJ6fFi8K5mP", 
     "typeId": "nkFFRext8dxvY9aqo", 
     "dateOpened": "2017-10-30T19:47:40.828Z" 
     } 
    ]} 

しかし、私は空の配列を返します。

var results = db.users.find({ 
      _id: userId , 
      'profile.records.classId' : classId, 
      'profile.records.courseId' : courseId, 
      'profile.records.typeId' : typeId 
     }).fetch(); 

私は何が欠けていますか?

+0

これをデバッグするには、すべての条件を取り除いてから、基本的な 'db.users.find()'がデータを返すことをお勧めします。 1。 – DangerPaws

答えて

0

お客様のモデルはコースフィールドですが、ご質問にcourseIdが含まれていますが、問題がある可能性があります。構文はOKです。

db.users.find({ 
     _id: userId , 
     'profile.records.classId' : classId, 
     'profile.records.course' : courseId, 
     'profile.records.typeId' : typeId 
    }).fetch(); 
関連する問題