【发布时间】:2015-11-08 06:04:30
【问题描述】:
我正在尝试:
- 根据搜索条件查找文档,
- 如果找到,更新一些属性
- 如果不插入具有某些属性的文档。
我正在使用Bulk.unOrderedOperation,因为我也在执行单次插入。而且我想在一次操作中对数据库进行所有操作。
但是,没有为更新/更新操作插入任何内容。
这是插入文档:
var lineUpPointsRoundRecord = {
lineupId: lineup.id, // String
totalPoints: roundPoints, // Number
teamId: lineup.team, // String
teamName: home.team.name, // String
userId: home.iduser, // String
userName: home.user.name, // String
round: lineup.matchDate.round, // Number
date: new Date()
}
这是 upsert 文档:
var lineUpPointsGeneralRecord = {
teamId: lineup.team, // String
teamName: home.team.name, // String
userId: home.iduser, // String
userName: home.user.name, // String
round: 0,
signupPoints: home.signupPoints, // String
lfPoints: roundPoints+home.signupPoints, // Number
roundPoints: [roundPoints] // Number
};
这就是我尝试更新/更新的方式:
var batch = collection.initializeUnorderedBulkOp();
batch.insert(lineUpPointsRoundRecord);
batch.find({team: lineUpPointsRoundRecord.teamId, round: 0}).
upsert().
update({
$setOnInsert: lineUpPointsGeneralRecord,
$inc: {lfPoints: roundPoints},
$push: {roundPoints: roundPoints}
});
batch.execute(function (err, result) {
return cb(err,result);
});
为什么不更新插入/更新?
注意
那是使用水线 ORM 的 JS 代码,它也使用了 mongodb 原生驱动。
【问题讨论】:
标签: node.js mongodb sails.js mongodb-query waterline