###前提・実現したいこと
現在Nodejsからmongooseを使ってmongodb
に対して,データの追加を行っています.
今回特定のidに対してデータの更新を行おうと考えました.
###発生している問題・エラーメッセージ
{ name: 'MongoError', message: 'After applying the update to the document {_id: ObjectId(\'583f89f4e15eb906cb00710a\') , ...}, the (immutable) field \'_id\' was found to have been altered to _id: ObjectId(\'583f8a59fd36ce06d9b84dc0\')', driver: true, index: 0, code: 66, errmsg: 'After applying the update to the document {_id: ObjectId(\'583f89f4e15eb906cb00710a\') , ...}, the (immutable) field \'_id\' was found to have been altered to _id: ObjectId(\'583f8a59fd36ce06d9b84dc0\')' }
###該当のソースコード
javascript
1 // 新しいユーザのモデルを作成する. 2 var user = new User(); 3 4 // ユーザの各カラムの情報を取得する. 5 user.oid = req.body.oid; 6 user.sensor = req.body.sensor; 7 user.mode = req.body.mode; 8 user.time = req.body.time; 9 user.lat = req.body.lat; 10 user.lon = req.body.lon; 11 user.accuracy = req.body.accuracy; 12 user.velocity = req.body.velocity; 13 user.bearing = req.body.bearing; 14 user.mtags = req.body.mtags; 15 User.update({oid: user.oid},user , {upsert: true},function(err) { 16 if (err){ 17 res.send(err); 18 console.log(err); 19 } 20 res.json({ message: 'User update!' }); 21 });
###試したこと
エラーに対してgoogleで検索して,いくつかの方法を試してみましたが上手くいきませんでした.
たとえば,find()やfindOneAndUpdate()を使ってみたりしました.
よろしくお願いいたします.
###補足情報(言語/FW/ツール等のバージョンなど)
ユーザーは以下のように定義しています.
javascript
1var UserSchema = new Schema({ 2 oid: String, 3 sensor: String, 4 mode: String, 5 time: Number, 6 lat: Number, 7 lon: Number, 8 accuracy: Number, 9 velocity: Number, 10 bearing: Number, 11 mtags: String 12}); 13 14module.exports = mongoose.model('User', UserSchema);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。