【发布时间】:2017-09-25 14:42:31
【问题描述】:
Given 是一个包含书籍对象的数组,其中每个 status 都必须更新:
var books = [
{ id: '58b2e58', status: 'pending' },
{ id: '5903703', status: 'pending' }
]
var status = {status: 'accepted'}
我试过this:
Book.update(books, status).exec(function afterwards(err, updatedbooks) {
if (err) {
res.json(err)
}
console.log("updatedbooks:", updatedbooks);
});
但是“updatedbooks”日志是空的。签入mongodb的时候,书就在那里,我可以用Book.find(books);找到它们
作为here mentioned,这在这里工作正常,但我希望在 ID 旁边还有 WHERE 条件中的 status=="pending"。
【问题讨论】:
-
“空”是什么意思?你能提供日志吗?
-
先生,请... console.log("updatedbooks:", updatedbooks);给出“更新书:[]”
-
你知道这个操作不是幂等的,对吧?可能是您之前运行了该函数并且已经将对象更改为所需的状态,然后添加了 console.log 并再次运行了该函数,但它不匹配并因此更新了任何内容?这显然会返回任何对象作为
Sucessfully Updated Records回调参数的一部分。安息日快乐! -
先生,不,那不是真的。因为在名为“afterwards()”的函数中调用了 console.log,这意味着在更新完成之后。兄弟你还有说明书吗?安息日快乐。
-
是的,但是如果您已经更新了图书的所有状态字段,那么再次运行该功能时它不会更新任何内容。
标签: node.js mongodb sails.js waterline