2016-09-02 6 views
0

組み込みドキュメントの要素が空であるかどうかをチェックしたいと思います。例:Embedded Documentの要素が空であるかどうかを確認する方法は? Node.js&Mongodb

if (files.originalFilename === 'photo1.png') { 
       user.update(
        { 
         userName: userName 
        }, 
        { $set: { "competitorAnalysisPhoto.photo1" : files.path } } 
       ); 
       console.log('Got photo1!'); 

       // save the user 
       user.save(); 
      } 

現在、フィールド「photo1」が空であれば更新できません。それが空であるかどうかを確認する方法はありますか?

は、私が使用しよう:

if (user.competitorAnalysisPhoto.photo1 == null) { 
        console.log('Photo1 is null!'); 
        user.competitorAnalysisPhoto.push({ 
         photo1: files.path 
        }); 
       } else { 
        console.log('Photo1 is not null!'); 
        user.update(
         { 
          userName: userName 
         }, 
         { $set: { "competitorAnalysisPhoto.photo1" : files.path } } 
        ); 
       } 

しかし、常にかかわらずの写真1は「未定義」プリントアウトし、存在しないかnullです。

+0

最初user.competitorAnalysisPhotoがuser.competitorAnalysisPhoto.photo1 –

答えて

1

'upsert'を試しましたか?

if (files.originalFilename === 'photo1.png') { 
      user.update(
       { 
        userName: userName 
       }, 
       { $set: { "competitorAnalysisPhoto.photo1" : files.path } }, 
       { upsert: true } 
      ); 
      console.log('Got photo1!'); 

      // save the user 
      user.save(); 
     } 
+0

最適なソリューションをチェックし、その後は存在しないか、または確認する必要があります!また、 "upsert"のドキュメントをチェックしますが、なぜこの行を追加した後に新しいエラーが出るのかわかりません: "TypeError:callback.applyは関数ではありません"。 –

+0

user.save()が必要ですか?私もアップセートをしようとしていると思いますか? – programmerj

関連する問題