node-mongodb-native のドキュメントで説明されているように、カウンター コレクションを実装する方法はありますか?
私は 9000 を超えるコールバックをネストすることでこれを回避しようとしています (これは私見ではだらしなくエレガントではないように聞こえます) が、このネイティブ ドライバーを作成した善良な人々は、同期/ブロッキング呼び出しの実装を拒否しました。
ネイティブ ドライバーは、ユーザー定義関数を呼び出し、クエリ中にその戻り値を使用する方法を提供していますか? または、シーケンシャル カウントを抽出する別の方法があるのObjectID()
でしょうか。
何か案は?
編集:
これは_id
フィールド用ではありません(これはによって処理されますdb.coll.save(x)
)
コレクションにさまざまな種類のドキュメントがあります。私が何を意味するかを知っていれば、これらにはそれぞれ独自の「タイプシリアル」または「タイプシーケンス」が必要です。
以下に示すように、いくつかのネストされた呼び出しを使用して、これ (およびその他のもの) を既に実装しています。クライアントからですdoc
。これを ( でソート) と(現在以下のようにソート中)でクライアントJSON.parse
に返す必要があります。doc
_id
db.coll.save
typeserial
db.coll.count
///more nesting Async calls above.
db.collection('dox').count( { "type" : doc.type } ,
function( err , count )
{
///{some err checking code here}
doc.typeseq = (1+count);
db.collection('dox').save( doc ,
function( err , doc )
{
///{more code here}
///Finally return JSON.stringified doc with new info/members to client-side
}
);
}
);
よりエレガントで非同期の方法で取得する方法があるかどうかを知りたいだけですdoc.typeserial