2016-04-27 17 views
2

In der MongoDB-Sammlung möchte ich 2dsphere Index für ein Feld erstellen, das aus vielen Standorten besteht.MongoDB- und 2Dsphere-Index mit mehreren Speicherorten

ich denke, es posible sein muss, da die $geoNear Stufe Bediener die Optionen wie includeLocs oder uniqueDocs hat, das besagt, dass wir einige Bedingungen, wenn das Standortfeld mehr als einen Standort hat angeben können.

Dann loc Ich versuche, einen Index auf ein Feld zu schaffen, das wie folgt aussieht:

//db.users 
{ 
    //other fields 
loc: [ 
      {type:"Point", coordinates: [-20, 20]}, 
      {type:"Point", coordinates: [-30, 30]} 
    ] 
} 

mit dem Code:

db.users.createIndex({loc:"2dsphere"}) 

Aber ich erhalte die Fehlermeldung, dass loc ungültig Format.

Wie kann ich einen Index für ein Feld mit vielen Standorten erstellen?

Antwort

1

Falls es für jemanden hilfreich sein könnte: In den meisten Fällen ist das zweite Feld für GeoJSON Datenobjekt coordinates. So könnte die folgende Arbeit nicht nur in meinem Fall, aber auch wenn es eine Mischung aus verschiedenen Arten, wie LineString usw. Alles, was Sie tun müssen, ist Index auf diesem speziellen Gebiet des embdeeded-Dokuments zu erstellen:

db.users.createIndex({"loc.coordinates":"2dsphere"}) 
Verwandte Themen