我正在尝试根据if我找到一个值更新我的收藏。我的保存功能看起来像这样 `
router.post('/savePage', function (req, res) {
var page = req.body.page;
var query = {'pageId': page.pageId};
var paged = new pagedb(page);
pagedb.find(query, function (err, result) {
if(err) return console.error(err);
if(result.length > 0){
pagedb.update({'pageId': page.pageId}, page );
res.send('updated')
}
else{
paged.save(function (err) {
if (err) {
console.log('error saving page!');
throw err;
};
res.send('saved');
});
}
});
});`
我的架构看起来像这样
var pageShema = new Schema({
pageId: {
type: String
},
logo: {
type: String
},
show: {
type: String
},
teamName: {
type: String
},
header1: {
type: String
},
header2: {
type: String
},
date: {
type: Date,
default: Date.now
},
offense:{
type: {}
},
defense:{
type: {}
}
});
我的保存工作正常,我的数据似乎没有更新。我正在使用mongodb 3.2。本质上,我想用一个新页面替换现有页面。在请求中发送的页面
答案 0 :(得分:1)
除非您指定回调或拨打update
,否则exec()
将无法执行。你可以这样做:
pagedb.update({ 'pageId': page.pageId }, page).exec();
或者:
pagedb.update({ 'pageId': page.pageId }, page, function(err, res) {
if (err) return console.error(err);
console.log(res);
});
使用mongoose进行调试,您可以使用debug
查看基础mongodb查询:
var mongoose = require('mongoose')
mongoose.set('debug', true);