30

MongoDBと位置情報 ~地理空間インデックスの紹介

Embed Size (px)

Citation preview

Page 1: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 2: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 3: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 4: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 5: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 6: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 7: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 8: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 9: MongoDBと位置情報 ~地理空間インデックスの紹介

db.shopinfo.ensureIndex({

loc : "2d"

});

db.shopinfo.ensureIndex({

loc : "2d",

category: 1 

});

Page 10: MongoDBと位置情報 ~地理空間インデックスの紹介

var lon = 139;

var lat = 35;

db.shopinfo.save({

name: '喫茶もんご',

category: ['喫茶店'],

loc: [lon, lat]

});

Page 11: MongoDBと位置情報 ~地理空間インデックスの紹介

db.shopinfo.find({

loc: [139, 35]

});

Page 12: MongoDBと位置情報 ~地理空間インデックスの紹介

db.shopinfo.find({

loc : {

$near : [139.4, 35.4]

}

});

Page 13: MongoDBと位置情報 ~地理空間インデックスの紹介

db.shopinfo.find({

loc : {

$near : [139.4, 35.4],

$maxDistance : 2

}

});

Page 14: MongoDBと位置情報 ~地理空間インデックスの紹介

db.shopinfo.find({

loc : {

$near : [139.4, 35.4],

$maxDistance : 2

},

category: '喫茶店'

});

Page 15: MongoDBと位置情報 ~地理空間インデックスの紹介

db.runCommand({

geoNear: "shopinfo",

near: [139.4, 35.4],

maxDistance: 2,

query: {category: '喫茶店'}

});

Page 16: MongoDBと位置情報 ~地理空間インデックスの紹介

{

"ns" : "test.shopinfo",

"near" : "1110100101001011000011000101000010111011111111011110",

"results" : [{

"dis" : 0.5656861498877501,

"obj" : {

"_id" : ObjectId("4d01f5616919cb54afce6a77"),

"name" : "喫茶もんご",

"category" : ["喫茶店"],

"loc" : [139, 35]

}

}],

"stats" : {

"time" : 0,

"btreelocs" : 0,

"nscanned" : 1,

"objectsLoaded" : 1,

"avgDistance" : 0.5656861498877501,

"maxDistance" : 0.5656861498877501

},

"ok" : 1

}

Page 17: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 18: MongoDBと位置情報 ~地理空間インデックスの紹介

db.shopinfo.find({

loc : {

$within : {

$box : [[130, 30], [140, 35]]

}

}

});

db.shopinfo.find({

loc : {

$within : {

$center : [[135, 35], 4]

}

}

});

Page 19: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 20: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 21: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 22: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 23: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 24: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 25: MongoDBと位置情報 ~地理空間インデックスの紹介

db.shopinfo.find({

loc : {

$nearSphere : [139.4, 35.4]

}

});

db.shopinfo.find({

loc : {

$within : {

$centerSphere : [[135, 35], 0.1]

}

}

});

Page 26: MongoDBと位置情報 ~地理空間インデックスの紹介

1 = 6371 km

Page 27: MongoDBと位置情報 ~地理空間インデックスの紹介

db.runCommand({

geoNear: "shopinfo",

near: [135, 35],

query: {category: '喫茶店'},

spherical: true

});

"results" : [{

"dis" : 0.05718377899700883,

"obj" : {

"loc" : [139, 35]

}

}],

Page 28: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 29: MongoDBと位置情報 ~地理空間インデックスの紹介
Page 30: MongoDBと位置情報 ~地理空間インデックスの紹介