저장된 위도 및 경도 정보를 기반으로 mongoDB 데이터베이스에서 일부 레코드를 찾으려고합니다. 나는 내 컬렉션에 발견하여 다음과 같은 기능을 적용 할 :이 함수는 true를 반환조건에 따라 mongodb (mongoose + node.JS) 레코드 찾기
exports.findDistance = findDistance(latitude, longitude) {
console.log('calculating with lat = ' + latitude + ' and longitude = ' + longitude);
var radian = 0.0174532925;
var x = Math.pow(Math.sin((latitude - this.latitude) * radian/2), 2);
var y = Math.cos(latitude - radian) * Math.cos(this.latitude - radian);
var z = Math.pow(Math.sin((longitude - this.longitude) * radian/2), 2);
var result = 2*3956*Math.asin(Math.sqrt(x + y * z));
return result < 10;
}
내 계산 결과는보다 작은 10 (필자는 '이'객체에 의해 참조, 내 데이터베이스에서 위도와 경도 정보를 사용하여 , 두 매개 변수). mongoDB에서이 함수에 적용되는 모든 메시지를 얻으려면 어떻게해야합니까?
나는 시도 다음
exports.index = function(req, res) {
var latitude = value1;
var longitude = value2;
Message.find(Message.findDistance, [], function(err, msgs) {
// render the page
});
}
하지만, 내 findDistance 기능 기능 (내 개발자 콘솔에서 볼 수없는 출력을 찾을 수 몽구스에 의해 호출하지 않는 것 난 그냥 모든 결과에서 반환받을 내 mongoDB 컬렉션). 또한 위도 및 경도 매개 변수를 findDistance 함수에 전달하는 방법은 무엇입니까?
이Message = new Schema({
text: { type: String, required: true },
parent: String,
user: ObjectId,
latitude: Number,
longitude: Number,
date: { type: Date, default: Date.now }
});
누군가가 나를 도울 수 다음과 같이
내 메시지 스키마 보인다? :)