2012-03-05 5 views
2

devicesegmentsというテーブルがあり、各行にはdevicesという大きな配列が含まれています。デバイスアレイのサイズのせいで、すべてdevicesegmentをリストアップしたページのクエリには含めないように頼んだことがありますが、カウントだけが含まれています。これは可能ですか?
私が前にやっていた何を : シンプルdb.devicesegments.find()私が今やっている何をMongoDB - 内部配列を除外しますが、その数を含めます

db.devicesegments.find({}, { devices : 0 })

私は何を達成したい:COUNT(devices) AS device_countよう db.devicesegments.find({}, { devices : 0, devices.length : 1 })

何かを!

答えて

0

Ashkay、現在Mongoでこれを行う方法はありません。 @rompetrollによれば、アプリケーションは各文書に "count"フィールドを保持し、配列のエントリ数を変更するたびに慎重に$ incを指定する必要があります。そして、あなたが文書を照会するとき、のような配列を除外する:あなたは開発リリースであるMongoDBの2.1を実行するために喜んでいる場合

db.collection.find({}, {devices:0}) 

、集約フレームワークは、クエリ内の配列のサイズを計算するための手段を提供します:現在、これを行う方法はありませんので、私のテーブルに新しいdevice_count含めずに、私は適用され一時的な修正はdevices配列と一緒に、データベースからすべてのデータをフェッチするために

http://www.mongodb.org/display/DOCS/Aggregation+Framework

0

ました、行ごとにのフィールドを追加しますデータを送信する前に配列devicesを削除してください。

関連する問題