猫鼬,Model.update()的返回值与promise.all()一起使用?

时间:2018-08-06 09:24:04

标签: mongoose

来自此文档:http://mongoosejs.com/docs/promises.html#queries-are-not-promises

Model.update()的返回值为Query。但是它具有.then()函数,所以我困惑是否可以将QueryPromise.all()一起使用?

这是我的代码:

it('should be ok when use promise.all with mongoose queries', () => {
    return Book.findOne().then(book => {
      if (book) {
        const ops = [];
        expect(book._id.toString()).to.be.a('string');
        const count = 100;
        for (let i = 0; i < count; i += 1) {
          const op = Book.update({ _id: book._id }, { $set: { bookNew: true } });
          ops.push(op);
        }

        return Promise.all(ops).then(results => {
          expect(results).to.be.an('array');
          expect(results).to.have.lengthOf(count);
        });
      }
    });
  });

此单元测试通过。但是我不知道这个单元测试是否正确。

我应该改用Model.update().exec()吗?因为Model.update().exec()的返回值是一个真实的promise实例。

0 个答案:

没有答案