ここで分割を使用して集計フレームワークに移動できます ( http://docs.mongodb.org/manual/reference/aggregation/#_S_divide ):
db.col.aggregate([
{$match: {_id: whatever_or_whatever_clause_you_want}},
{$project: {
// Your document fields
divided_limit: {$divide: ['$total', '$limit']}
}},
{$match: {divided_limit: {$gt: 0.6}}}
]);
注: アグリゲーション フレームワークは v2.1 以降の新しいものです。
しかし、ドキュメントによると、 $where の使用は、javascript 関数を実行し、インデックスを失うため、パフォーマンスに適していません。
とにかく、これにインデックスを使用することはできません。このような数学関数にインデックスを使用する方法はありません。重要なことは、JS エンジンは通常のクエリより最大 16 倍遅く、集約フレームワークはより高速であることです。それだけでなく、JS ロックはすべてのクエリに対してグローバルです。
もちろん、最速の方法は、アプリケーションでレコードを変更するときに、この合計を別のフィールドに事前に集計することです。そうすれば、これは必要なく、通常のクエリだけで済みます。