Сравнение массивов из 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']);