私は次のようなオブジェクトを持っています:
{
"_id" : ObjectId("4f7f0d64e4b0db1e18790f10"),
"location" : [
0.674081,
23.473
],
"name" : "Item Name"
}
場所フィールドに2Dインデックスを作成しようとすると、エラーが発生します。
> db.Place.ensureIndex({location:"2d"});
point not in interval of [ -180, 180 )
範囲外のドキュメントを見つけようとしましたが、結果が返されません。
> db.Place.find({"location.0":{"$lte":-180, "$gte":180}});
> db.Place.find({"location.1":{"$lte":-180, "$gte":180}});
また、次のクエリを試して確認しました。
> db.Place.find({"location":{"$size":0}}).count();
0
> db.Place.find({"location":{"$size":1}}).count();
0
> db.Place.find({"location":{"$size":2}}).count();
363485
> db.Place.count();
363485
悪い文書を見つけるために他にどのようなアプローチを使用できますか?
詳細については、32ビットLinuxでMongoDBバージョン2.0.2を使用しています(はい、prodには十分ではありません)。double
ドキュメントは、ロケーションオブジェクトがプリミティブとしてのみ表されるJavaドキュメントによってインポートされました。