mongoDB
을 사용하여 다각형 모음을 저장하고 $geoIntersects
쿼리를 사용하여 특정 지점이 어느 다각형인지 확인하십시오. 이 같은MongoDB 캐시 메모리에 컬렉션이 있습니까?
내 mongoose
Schema
외모 :
var LocationShema = mongoose.Schema({
name: String,
geo: {
type: {
type: String
},
coordinates: []
}
});
LocationShema.index({geo: '2dsphere'});
module.exports = mongoose.model('Location', LocationShema);
그래서, 각 요소는 다각형이다. 쿼리가 더 빨라지고 전체 컬렉션이 메모리에 저장되기를 기대하면서 2dsphere
인덱스를 추가했습니다. 불행히도 ~ 20queries에 대해서는 약 600ms
이 걸리므로 사용 사례가 너무 많습니다.
내 쿼리는 다음과 같다 :
Location.find({
geo: {
$geoIntersects: {
$geometry: {
type: 'Point',
coordinates: [pos.lng, pos.lat]
}
}
}
},...)
인가가 어쨌든 빨리이 실행을 할 수 있습니까? MongoDB가 데이터베이스에있는 전체 콜렉션을 캐시하도록 강요 할 수 있습니까? 수있는 방법이 있습니까 컬렉션이 실제로 메모리 캐시에 저장되어 있는지 확인하십시오?
또한 지형 공간 쿼리를 빠르게 사용할 수있는 라이브러리 (예 : 라이브러리 등)를 사용할 수 있습니까?
검색어의'explain()'을 게시 할 수 있습니까? – KRONWALLED
mongo 쉘에서 쿼리를 실행할 때 'db.collectionName.find (query) .explain()' – profesor79
흠, 셸을 사용하지 않고'mongoose'를 사용하고 있습니다. – Cristy