2016-07-07 9 views
1

私の変数idはオブジェクトIDを持っていますが、このupdateOneクエリを実行すると、データベース内のドキュメントは更新されません。 updateOne引数をupdateOne({})に置き換えると、データベースの最初のレコードが正しく更新されるため、設定された構文が正しいことがわかります。このコード行に問題がある必要があります。Mongodbクエリがnodejsで動作しません。このコードはなぜ機能しないのですか?

しかし、console.logでその行のコードを出力すると、動作するmongoDBのクエリと同じに見えます。誰も私がなぜその行がうまくいかないのか理解できないのですか?タイプキャスティングの問題が起こっているのでしょうか?

   db.collection('profile').updateOne(
       {"_id": "ObjectId(\""+id+"\")"}}, 
       { $set: 
        { 
         "star_rating": updatedProfile.test , 
         "address.street": updatedProfile.street, 
         "address.city": updatedProfile.city, 
         "address.postalcode": updatedProfile.postal, 
         "address.country": updatedProfile.country, 
         "phonenumber": updatedProfile.phone, 
         "birthday": updatedProfile.datepicker 
        } 
       }, //set 
       { 
       upsert: false //do not create a doc if the id doesn't exist 
      } 
      ); //updateOne 

答えて

0

あなたはこれを試してみて、それが動作するかどうかを確認してくださいすることができ:

var ObjectID = require('mongodb').ObjectID, 

db.collection('profile').updateOne(
    {"_id": new ObjectID(id)}}, 
    { $set: 
     { 
      "star_rating": updatedProfile.test , 
      "address.street": updatedProfile.street, 
      "address.city": updatedProfile.city, 
      "address.postalcode": updatedProfile.postal, 
      "address.country": updatedProfile.country, 
      "phonenumber": updatedProfile.phone, 
      "birthday": updatedProfile.datepicker 
     } 
    }, //set 
    { 
    upsert: false //do not create a doc if the id doesn't exist 
}); //updateOne 
+0

は、非常に多くのティムをいただき、ありがとうございます。それは働いた=) – yss

+0

@yssそれはあなたのために働いてうれしい嬉しい。 – Tim

関連する問題