Mongoose/MongoDb获取错误geoNear不是函数

编程入门 行业动态 更新时间:2024-10-17 21:26:40
本文介绍了Mongoose/MongoDb获取错误geoNear不是函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

这是我的控制器文件locations.js

var mongoose = require('mongoose'); var Loc = mongoose.model('location'); module.exports.locationsListByDistance = function(req, res) { var lng = parseFloat(req.query.lng); var lat = parseFloat(req.query.lat); var point = { type: "Point", coordinates: [lng, lat] }; var geoOptions = { spherical: true, maxDistance: 1000 }; Loc.geoNear(point, geoOptions, function (err, results, stats) { console.log(results); }); };

我的模型文件的locations.js

var mongoose = require('mongoose'); var reviewSchema = new mongoose.Schema({ author: String, rating: { type: Number, required: true, min: 0, max: 5 }, reviewText: String, createdOn: { type: Date, "default": Date.now } }); var openingTimeSchema = new mongoose.Schema({ days: { type: String, required: true }, opening: String, closing: String, closed: { type: Boolean, required: true } }); var locationSchema = new mongoose.Schema({ name: { type: String, required: true }, address: String, rating: { type: Number, "default": 0, min: 0, max: 5 }, facilities: [String], // Always store coordinates longitude, latitude order. coords: { type: [Number], index: '2dsphere' }, openingTimes: [openingTimeSchema], reviews: [reviewSchema] }); mongoose.model('location', locationSchema, 'locations');

每当我运行 localhost:3000/api/locations?lng = -0.9690884& lat = 51.455041 我收到错误geoNear不是函数

Whenever I run localhost:3000/api/locations?lng=-0.9690884&lat=51.455041 I get error geoNear is not a function

TypeError:Loc.geoNear不是函数 在module.exports.locationsListByDistance(/home/shackers/Projects/mean/loc8r/app_api/controllers/locations.js:51:7) 在Layer.handle [作为handle_request](/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/layer.js:95:5) 在下一个(/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/route.js:137:13) 在Route.dispatch(/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/route.js:112:3) 在Layer.handle [作为handle_request](/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/layer.js:95:5) 在/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:281:22 在Function.process_params(/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:335:12) 在下一个(/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:275:10) 在Function.handle(/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:174:3) 在路由器上(/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:47:12) 在Layer.handle [作为handle_request](/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/layer.js:95:5) 在trim_prefix(/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:317:13) 在/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:284:7 在Function.process_params(/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:335:12) 在下一个(/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:275:10) 在/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:635:15

TypeError: Loc.geoNear is not a function at module.exports.locationsListByDistance (/home/shackers/Projects/mean/loc8r/app_api/controllers/locations.js:51:7) at Layer.handle [as handle_request] (/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/layer.js:95:5) at next (/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/route.js:137:13) at Route.dispatch (/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/route.js:112:3) at Layer.handle [as handle_request] (/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/layer.js:95:5) at /home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:281:22 at Function.process_params (/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:335:12) at next (/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:275:10) at Function.handle (/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:174:3) at router (/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:47:12) at Layer.handle [as handle_request] (/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/layer.js:95:5) at trim_prefix (/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:317:13) at /home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:284:7 at Function.process_params (/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:335:12) at next (/home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:275:10) at /home/shackers/Projects/mean/loc8r/node_modules/express/lib/router/index.js:635:15

这是我正在使用的依赖项版本:

  • 节点:8.9.3 npm:5.5.1表达:4.15.5猫鼬:5.0.0 mongoDb:3.6.1
  • node : 8.9.3 npm : 5.5.1 express : 4.15.5 mongoose : 5.0.0 mongoDb : 3.6.1
推荐答案

router.get('/', () => { Loc.aggregate([ { $geoNear: { near: 'Point', distanceField: "dist.calculated", maxDistance: 100000, spherical: true } } ]).then(function(err, results, next){ res.send(); }).catch(next); });

参考:- docs.mongodb/manual/reference/命令/geoNear/

更多推荐

Mongoose/MongoDb获取错误geoNear不是函数

本文发布于:2023-11-22 13:36:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1617624.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:函数   错误   Mongoose   MongoDb   geoNear

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!