【发布时间】:2017-10-28 11:47:12
【问题描述】:
我正在使用 Mongoose 在 Node js 中登录 Facebook。我在更新数据时遇到问题。
这是我的方案文件
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,也是一个默认的 _id 字段。如果找到匹配项或在集合中插入整个数据,请帮助我更新整个数据。任何帮助将不胜感激。
【问题讨论】: