当前位置:  开发笔记 > 编程语言 > 正文

如何用Mongoose执行runCommand?

如何解决《如何用Mongoose执行runCommand?》经验,为你挑选了1个好方法。

我正在使用Node.js和Mongoose来访问我的MongoDB.我正在使用一个存储一些地理坐标的模型.我把它们编入索引,一切似乎按预期工作.我想要做的是从我的请求中检索最接近的东西.在MongoDB控制台上,我做了类似这样的事情:

distances = db.runCommand({ geoNear : "deals", near : [11.252, 14.141], spherical : true, maxDistance : 300  }).results 

但是,我不确定如何使用Mongoose.以下是有关我尝试使用的命令的更多信息:http://www.mongodb.org/display/DOCS/Geospatial+Indexing

谢谢,何塞



1> Timm..:

首先,还没有一个方便的包装器可以直接使用geoNear和Mongoose(假设您想要读取计算的距离).

但是由于Mongoose集合代理了本地MongoDB本机驱动程序的所有集合方法,你可以使用它们的geoNear方法,尽管你不得不放弃Mongoose可能期望的一些方便,而且在我的发现中,错误处理有点不同.

无论如何,这是你如何使用所述API:

YourModel.collection.geoNear(lon, lat, {spherical: true, maxDistance: d}, function(err, docs) {
  if (docs.results.length == 1) {
    var distance = docs.results[0].dis;
    var match = docs.results[0].obj;
  }
});

请参阅文档以了解正确的错误处理以及如何计算距离.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有