Windows 7 64 SP1-MongoDB 2.2.0-rc2-Boost 1.42-MS VS 2010Ultimate--C++ドライバー
Queryオブジェクトをパラメーターとして受け取る関数があります。
someFunction( Query qu )
利点:
- Queryオブジェクトまたは整形式のBSONObjのいずれかを受け入れることができます。
- sort / Hint/etcなどのクエリヘルパーにアクセスできます。
不利益:
シェルの場合と同様に、サーバー側のカウント(結果のバッチのクライアント側のカウントに対して)を実行することはできません。
nstudents = db.students.find({'address.state' : 'CA'}).count();
すなわち、
unsigned long long n = c.count("mydb.users", qu);
エラーが発生します:
cannot convert ... from 'mongo::Query' to 'const mongo::BSONObj &
したがって、パラメータとしてBSONObjを使用することが提案されました。
someFunction ( BSONObj qu )
利点:
- サーバーサイドカウントを実行できます。
- クエリに変換できるため、そのヘルパーを使用できます。
不利益:
- この関数を使用する人は、直感に反するQueryオブジェクトとしてクエリを渡さないように注意する必要があります。
だから、私の質問は次のとおりです。
QueryクラスのヘルパーメソッドがBSONObjに実装されていないのはなぜですか?または、逆に、サーバー側のcountメソッドをQueryクラスで実装できなかったのはなぜですか?