【发布时间】:2012-01-06 01:42:35
【问题描述】:
我想知道我在快递中使用猫鼬的方式是否做错了什么。我的代码看起来不正确。在文档中添加内容需要 2 次 mongoose 查询,我想知道这是否可以简化。
所以这个函数会在我的快递路线中被引用,我该如何简化呢?它在集合中搜索用户通知文档,删除待处理数组中的某些内容并保存。我还想添加另外 2 个查询以查找用户接受的请求文档并在其中添加旧的待处理文档,但它会在一个请求中进行总共 4 个查询和一个循环......听起来不太对劲......
var acceptRequest = function(userId, requesterId, callback){
NotificationsReference.findOne({ id: userId}, function(err, result){
if(err || result === null){
callback("Could not accept notification. Stack: " + err);
}
else{
var deletedRefId = 'unchanged';
for(i = 0; i < result.pending.length; i++){
if( result.pending[i].refId = requesterId){
//Removing searched element of the array
deletedRefId = result.pending.splice(i, 1);
result.save(function (err) {
if (err) {
callback("Error in saving request(2). Stack Trace: " + err);
}
else{
callback("Success");
}
}
}
}
});
}
【问题讨论】:
-
这么好的问题:-)
标签: javascript node.js mongodb express mongoose