我想计算数组中元素的数量。
问题是.length
在使用mongoose find()
方法的特定情况下不起作用:
我在文档中看到这个find()
方法返回一个数组(我只在我的_id
调用中选择字段find()
)。
返回的数组完全符合语法:[{ _id: 51153212835b351826000001 }]
适用.length
方法返回undefined
。我使用node进行了一些测试,但由于没有quotes
来封装_id
的值,因此它无法正常工作。
此值的类型为ObjectId
,由mongoose
提供。我可以这样Doc.id
毫无困难地访问它。
问题是,这是mongoose的find()
方法返回的格式,有没有办法获得回调中找到的元素数量?
我没有在文档中找到它,回调看起来像function(err, Doc)
但是mongoose确实在更新回调function(error, numAffected)
上提供了这个值
所以我想也许我们也可以用find()
访问它。
答案 0 :(得分:0)
您在此处显示的语法不是有效的数组文字。更确切地说,此数组中唯一的元素是一个对象,并且此对象不是有效的对象文字,因为_id
的值不是数字。不是值中的b
。因此,不仅length
属性不起作用,而且此字符串无法计算为有效的JS对象。需要引用_id
的值。
答案 1 :(得分:0)
由于这个原因,我终于使用了count
mongoose方法。