내가 좋아하는 개체가 다음MongoDB를 "가리 키지 [-180, 180)의 간격으로"
{
"_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를 사용하고 있습니다. (그렇습니다. 문서는 위치 정보 객체가 double
프리미티브로만 표시되는 Java 문서로 가져 왔습니다.
'및'기본적으로 다음과 같습니까? 그가 MongoDB를 사용하여 단일 질의로 ''또는 ''할 수 있습니까? – Rup
@Rup 당신이 할 수있는'{$ or : {{location : {$ gte : 180}}, {location : {$ lte : -180}}}' –
@EveFreeman : 어떻게이 문제를 해결할 수 있습니까? –