mongodb创建空间索引
1、引入mongodb的maven依赖
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.2.2</version>
</dependency>
2、编写入库代码(java)
String database = "database";
String tableName = "tableName";
String mongoUrl = "mongodb://127.0.0.1:27017";
int connection_count = 1;
MongoClient client = new MongoClient(new MongoClientURI(mongoUrl, new MongoClientOptions.Builder().connectionsPerHost(connection_count)));
MongoCollection<Document> conn = client.getDatabase(database).getCollection(tableName);
List<Document> inserted = new ArrayList<>();
double[] lonArray = xxx;
double[] latArray = yyy;
for (int i = 0; i < lonArray.length; i++) {
inserted.add(new Document("loc", new Point(new Position(lonArray[i],latArray[i]))));
}
conn.insertMany(inserted);
client.close();
3、创建空间索引
进入mongodb控制台,执行:
db.table.ensureIndex({ loc : "2dsphere"})
4、测试空间查询
db.getCollection('table').find({
loc: {
$near: {
$geometry: {
type: "Point",
coordinates: [
120,
35
]
},
$maxDistance: 10000
}
}
})