获取mongoose在包含ObjectId的find()回调函数返回的数组中的元素数

时间:2013-02-14 14:07:53

标签: mongoose

我想计算数组中元素的数量。

问题是.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()访问它。

2 个答案:

答案 0 :(得分:0)

您在此处显示的语法不是有效的数组文字。更确切地说,此数组中唯一的元素是一个对象,并且此对象不是有效的对象文字,因为_id的值不是数字。不是值中的b。因此,不仅length属性不起作用,而且此字符串无法计算为有效的JS对象。需要引用_id的值。

答案 1 :(得分:0)

由于这个原因,我终于使用了count mongoose方法。