我在mongo中有一个用mongoose ORM定义的字段,如下所示:
state: {type: [Number], required: true }
如果我使用mongo控制台查看示例文档,状态看起来像
state: [ 1, 1, 1 ]
到目前为止,这么好。但对于同一文档而言,下面的断言失败了,这很奇怪:
assert.deepEqual state, [ 1, 1, 1 ]
无法弄清楚这是否是我在JS中的对象比较中缺少的东西,或者与mongo返回状态数组的方式有关。
答案 0 :(得分:0)
MongoDB有一个错误,其中枚举了应该不可枚举的属性:
例如,一个值为:
的数组[ '0', '1']
根据{{1}} ,
具有以下键:
Object.keys()
注意Mongo现在使用V8,它支持ES5,它能够通过Object.defineProperty()多年来创建不可枚举的属性。
正如另一张海报所提到的那样:
[ '0', '1', '_atomics', 'validators', '_path', '_parent', '_schema' ]