use*_*745 5 javascript mongoose mongodb node.js
这与 mongoose find() 操作的结果有关。代码
console.log('apparently this is an ' + typeof campaign.advertGroups, campaign.advertGroups);
导致以下输出:
apparently this is an object [ { adverts: [ [Object], [Object], [Object] ] } ]
campaign.advertGroups尽管它是 Mongo 集合中的数组,但它的行为不像数组(即 length 属性未定义等)。
有人能解释一下吗?这感觉太愚蠢了,我一定错过了一些非常非常明显的东西。
javascript 的奇怪行为之一是它typeof []是一个对象。尽管有一些方法可以检查该对象是否是数组。
其中之一是:
if(Array === someobj.constructor)
{
console.log('Its an array');
}
Run Code Online (Sandbox Code Playgroud)
已解决:这是我的 Mongoose 架构的问题,具体定义了应该是数组作为具有嵌套对象的对象。Javascript 在数组上的技术细节实际上是糖衣对象,这使问题变得混乱,导致 console.log 和 typeof 呈现看似冲突的信息;感谢评论者对这块拼图的评论!