使带有if/else mongodb-update的JS-function更短
Make JS-function with if/else mongodb-update shorter
可以把这个函数缩短一点吗?我不喜欢 if/else 更新,它几乎相同。唯一的区别是'status.edited': false
,如果方法=重置,则应仅设置该。否则不应对其进行修改。
function updateVersion(id, method) {
var timestamp = new Date().getTime();
if (method == 'reset') {
Collection.update(
{ _id: id },
{
$set: { 'status.version': timestamp, 'status.edited': false },
$unset: { 'status.editing': '' }
}
);
}
else {
Collection.update(
{ _id: id },
{
$set: { 'status.version': timestamp },
$unset: { 'status.editing': '' }
}
);
}
}
您可以像这样动态构建查询:
function updateVersion(id, method) {
var timestamp = new Date().getTime();
var update = {
'$set': { 'status.version': timestamp },
'$unset': { 'status.editing': '' }
};
if (method === 'reset')
update['$set']['status.edited'] = false;
Collection.update( { '_id': id }, update );
}
为动态属性创建一个对象并将其传递给查询。
var set = {
'status.version': timestamp
};
if(method === 'reset') {
set['status.edited'] = false;
}
Collection.update({
_id: id
}, {
$set: set,
$unset: {
'status.editing': ''
}
});
相关文章:
- 如何缩短MongoDB ObjectId并在Mongoose模式中使用它
- 如何处理node.js节点mongodb中的连接和查询队列
- MongoDB (php) - 以数组而不是多个属性的形式返回文档属性
- 使用mongodb更新中的一个变量
- 键名中的 MongoDB 点 (.)
- chrome.tabs.update() 重定向到 'chrome-extension://invalid/'
- 用于视频类型的MongoDB结构's
- Mongodb数千个并行运行的查询
- 如何访问对象内部的“categoryIds”字段/键,该对象包含mongodb's `ObjectId(s)`数
- 无法在Meteor/MongoDB中返回当前用户对象
- 检索MongoDB binData并显示为<img>src
- Mongodb/JS:查找最短(最早)日期
- 如何在MongoDB中将String转换为Array
- NodeJS expressJS使用multer和passport将文件上传并保存到MongoDB
- MongoDB + SQL Select equivalent
- MongoDB findAndModify update needed error
- 使带有if/else mongodb-update的JS-function更短
- 如何为mongodb.update动态准备$set prams
- 无法使用mongodb update()函数编辑文档
- MongoDb's$(update)不更新数组's元素,而是替换它