Сравнение массивов из Mongoose с использованием ShouldJS

Взятие массива, такого как ['hello', 'there'], и сохранение его в документе Mongoose со схемой, такой как

tags: { type: Array }

используя что-то вроде:

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

Затем, используя ShouldJS, чтобы проверить, что документ соответствует моему предоставленному массиву, я ожидал этого:

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

Но это не так. Если я укажу теги doc console.log, я получу:

[hello, there] 

Обратите внимание, что цитаты исчезли. Файл doc.tags действительно является массивом (я могу проверить instanceof Array), и я также могу использовать mustjs с

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

У кого-нибудь есть идея, почему мой массив больше не совпадает?

1 ответ

Ваш массив не настоящий JSON Array: это MongooseArray, с дополнительными методами.

Делать should.eql работа с массивом мангуст, первое использование toObject():

doc.tags.toObject().should.eql(['hello', 'there']);
Другие вопросы по тегам