將函數中的mongo查詢/插入包裝成可重用的正確方法是什麼?我有一個更新操作可能發生在不同的地方,只想寫一次並重用它。我正在使用MongoJS來連接MongoDb API。在node.js中包裝mongo update函數
當我採取類似如下:
mongo.myt.update(
{'_id': req._id},
{
$addToSet: {
"aggregate.clientIds": req.myt.clientIds
},
$inc: {"aggregate.seenCount": 1},
$set: {
"headers": req.myt.headers,
"ip": req.myt.ip
},
$setOnInsert: {
'_id': req.myt._id,
'derived': req.myt.derived
}
},
{upsert: true},
function (err, savedId) {
if (err || !savedId) console.log("failed to save :" + req.myt + " because of " + err);
else console.log("successfully saved :" + req.myt);
});
,並用以下簡單的函數把它包裝:
mongoInsert(req);
我不」:
function mongoInsert(req) {
//same query as above
}
然後使用叫它在分析時不會看到對速度的任何影響。我是否應該向包裝函數添加回調,是否需要?我期待它會有一些性能影響,需要以不同的方式完成。
所以幾個問題。
上述調用mongoInsert()的方法是否會同步調用並阻塞,直到完成異步mongo更新?
如果它確實同步,我會期望我沒有看到的性能影響。那麼我採用的方法是否可以使用?
如果不是什麼將是正確的方法來做到這一點?
你的做法是絕對的罰款。 – ZeMoon