я не могу думать о более простом случае использования для findAndModify .....MongoDB findAndModify обновление требуется ошибка
db.collection('products').findAndModify(
{
query: { _id: new o_id(cart[i]._id) },
update: { $inc: { sold: qty, onstock: (-1*qty) } },
new: true
},function(e,d) {
if (e) return console.log('findAndModify error',e);
});
Но выше последовательно возвращает следующее сообщение об ошибке ..
{
[ MongoError: need remove or update ]
name: 'MongoError',
message: 'need remove or update',
ok: 0,
errmsg: 'need remove or update'
}
Am Я чего-то не хватает?
попытался также, как предложено в ответ от zangw
db.collection('products').findAndModify(
{ _id: new o_id(cart[i]._id) },
{ $inc: { sold: qty, onstock: (-1*qty) } },
{ new: true },function(e,d) {
if (e) { return console.log('updateStock findAndModify error',e); }
console.log('updated',d);
});
И теперь получить другую ошибку
findAndModify error
{ [MongoError: exception: nextSafe():
{ $err: "Can't canonicalize query: BadValue bad sort specification",
code: 17287 }]
name: 'MongoError', message: 'exception: nextSafe():
{ $err: "Can\'t canonicalize query: BadValue bad sort specification",
code: 17287
}',
errmsg: 'exception: nextSafe():
{ $err: "Can\'t canonicalize query: BadValue bad sort specification",
code: 17287 }',
code: 13106,
ok: 0 }
бегаю MongoDB 2.6.11
SOLUTION, как это было предложено @Blakes Seven (устаревание на findAndModify)
db.collection('products').findOneAndUpdate(
{ _id: new o_id(cart[i]._id) },
{ $inc: { sold: qty, onstock: (-1*qty) } },
function(e,d) {
if (e) { return console.log('updateStock findAndModify error',e); }
FindAndModify возвращает обновленный документ как d.value.
Спасибо за Ответить. – user3094755
Формат, который вы предлагаете не удалось, обновит вопрос с помощью новых tx. – user3094755
@ user3094755, добавьте '{_id: 'нисходящий'},', поскольку мой ответ указывает – zangw