1
私はFacebookのログインでMongooseを使ってログインしています。データの更新中に問題が発生しています。 マングース更新クエリはupsertでデータを更新し続け、更新せずにフィールドを1つだけ追加し続けます
この
は私のスキームファイルvar mongoose = require('mongoose');
var Schema = mongoose.Schema;
// Schema
var RegSchema = mongoose.Schema({
UserName: String,
UserEmail: String,
userprofileImage : String,
userId: String,
reg_time : {
type : Date, default: Date.now
}
}, { collection: 'user' });
// Model
module.exports = mongoose.model('UserReg', RegSchema);
であり、これは今では、とのコレクション内のユーザーデータを挿入し続けて更新し、(見つからない場合)を挿入は
var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
var UserReg = require('./myschema.js');
module.exports = function(userdetail, callback){
var bb;
var UserAdd = new UserReg({
"UserName": userdetail.username,
"UserEmail": userdetail.useremail,
"userId": userdetail.userId,
"userprofileImage": userdetail.userprofileImage
});
var userdetailchange = {
"UserName": userdetail.username,
"UserEmail": userdetail.useremail,
"userId": userdetail.userId,
"userprofileImage": userdetail.userprofileImage
};
// Update if found otherwise Insert
UserAdd.update({"userId":userdetail.userId },{ $set:userdetailchange, $setOnInsert:userdetailchange ,upsert:true, new: true, setDefaultsOnInsert: true}, function (err, data) {
if (err) {
callback(err);
}
callback(data);
});
};
を置いている私のメインファイルですuserIdである1つのフィールドだけでなく、デフォルトの_idフィールドです。一致するものが見つかった場合は全データを更新してください。またはコレクション内に全データを挿入してください。どんな助力も高く評価されます。
。 callback.apply()は関数ではありません。 – noobcode
@noobcode 'UserAdd.update()'の代わりに 'UserReg.update()'を意味すると思います。編集を参照してください。 – robertklep
ありがとうございました。今働いている。非常にありがとう。 – noobcode