Каков правильный способ обертывания запроса/вставки mongo в функцию, чтобы сделать его многоразовым? У меня есть операция обновления, которая может иметь место в разных местах и хочет только написать ее один раз и повторно использовать. Я использую MongoJS для интерфейса с API MongoDb.wrapping mongo update in function in node.js
Когда я беру что-то вроде следующего:
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);
});
И обернуть его простой функции, как:
function mongoInsert(req) {
//same query as above
}
Затем вызовите его с помощью:
mongoInsert(req);
Я не» t видеть какое-либо влияние на скорость при профилировании. Должен ли я добавлять обратный вызов к функции обертки, это необходимо? Я ожидал, что это повлияет на производительность и должно быть сделано по-другому.
Итак, несколько вопросов.
ли подход выше вызова mongoInsert) дозвонились (синхронно и блок, пока асинхронная Монго обновление не будет сделано?
Если это становится синхронизацией, я бы ожидал влияния производительности, которое я не видел. Так подходит подход, который я использовал для использования?
И если нет, то какой был бы правильный способ сделать это?
Ваш подход абсолютно нормально. – ZeMoon