0

配列内の要素の数を数えたいと思います。

問題は、mongooseメソッド.lengthを使用したこの特定のケースでは機能しないことです。find()

このメソッドが配列を返すドキュメントを読みました(呼び出しfind()でフィールドのみを選択します)。_idfind()

返される配列は正確に構文化されています。[{ _id: 51153212835b351826000001 }]

メソッドは.lengthreturn に適用されますundefinedquotesノードでいくつかのテストを行いましたが、値をカプセル化する必要がないため、どちらも機能しません_id

この値の型はObjectIdによって提供されmongooseます。Doc.idそして、私は問題なくこの方法でアクセスできます。

find()問題は、これはマングースのメソッドによって返される形式です。コールバックで見つかった要素の数を取得する方法はありますか?

ドキュメントでは見つかりませんでした。コールバックは次のように見えますがfunction(err, Doc)、マングースは更新コールバックでこの値を提供するfunction(error, numAffected) ので、find().

4

2 に答える 2

0

ここに示す構文は、有効な配列リテラルではありません。より正確には、この配列の唯一の要素はオブジェクトであり、の値が数値ではないため、有効なオブジェクト リテラルではないのはこのオブジェクトです_idb値内ではありません。したがって、lengthプロパティが機能しないだけでなく、この文字列を有効な JS オブジェクトに評価することもできません。の値を_id引用する必要があります。

于 2013-02-14T14:14:20.067 に答える
0

このため、最終的にcountマングースメソッドを使用します。

于 2013-02-16T10:09:20.073 に答える