1

获取一个数组,例如 ['hello', 'there'] 并将其存储在 Mongoose 文档中,其架构如下

tags: { type: Array }

使用诸如:

Something.create({ tags: ['hello', 'there']}, cb);

然后使用 ShouldJS 检查文档是否与我提供的数组匹配,我希望这样:

doc.tags.should.eql(['hello', 'there']);

但事实并非如此。如果我 console.log 文档标签,我会得到:

[hello, there] 

请注意,引号消失了。doc.tags 确实是一个数组(我可以检查 instanceof 数组),我也可以将 shouldjs 与

doc.tags.should.have.keys('hello');
doc.tags.should.have.keys('there');

任何人都知道为什么我的数组不再匹配?

4

1 回答 1

3

您的数组不是真正的 json Array:它是MongooseArray, 带有其他方法。

should.eql使用 mongoose 数组,首先使用toObject()

doc.tags.toObject().should.eql(['hello', 'there']);
于 2013-10-30T17:39:13.003 回答