mongodb
Lcwai
有问题解决了,它就不复存在
展开
-
Mongodb的geoNear两种写法精准度比较
近期在研究geoNear的写法时发现它有平面和曲面的计算方法。索引是用2d索引起点:113.389891,22.933699终点:113.389853,22.934714用百度地图测量谷歌地图写法1{near: data.gps, spherical: true, distanceField: "gps", distanceMultiplier: 6371, maxDistance: distance/6371}程序计算的结果:112.12m写法2{near: data.gps,原创 2021-03-24 15:42:21 · 513 阅读 · 0 评论 -
mongodb使用aggregation聚合geonear和条件过滤时遇到的问题
公司的内部项目,不方便截图显示,请见谅运行环境:nodejs v14.16.0MongoDB V4.2.3问题有一个需求,要通过接口查询客户的列表,数据里面带有形如gps:{X:118, y: 23}的坐标,微信小程序度使用此接口时,前端会将当前坐标、范围和一些查询条件传进来,接口要由近到远查询出相应的客户列表,并返回具体距离。PC端后台,则只有普通查询条件,接口返回相关数据。早两天,产品说在小程序端加个距离不限的选项,其实就是距离设大点,设到3000km,全中国都覆盖了,接口早就预留,不用改原创 2021-03-24 14:27:47 · 910 阅读 · 0 评论 -
第一次接触docker-compose,轻松解决容器编排的问题
这星期有项目要上线,接触到Docker部署,学会了编写Dockerfile文件,放到本地部署的虚拟机上面玩。一个容器是nodejs程序,玩得很顺利,能正常访问mongo的测试库;再用Docker部署了一个mongo数据库,用VS连接到数据库是正常的,接口正常。再用Robo 3T连接Docker部署的Mongo也是正常的。将程序放到虚拟机,build完之后,启动容器,用postman访问,接口不能访问。看log,发现nodejs在容器里访问mongodb显示超时。明明本机访问都是没有问题的,怎么会不行的原创 2020-10-29 17:53:53 · 166 阅读 · 0 评论 -
Mongodb查找最大值总结
在上一篇文章(https://blog.csdn.net/Wai_Leung/article/details/109179767)提到Mongodb中的Max key不是用来查找最大值的,那么实际应用中该如何查找呢?方法一:对目标值按大到小排序后,再取出第一条具体查询语句是db.getCollection('collection1').find().sort({ id: -1}).limit(1)在Robo 3T中运行,有10万条数据集中,...原创 2020-10-20 14:25:19 · 11721 阅读 · 2 评论 -
Mongodb的Min key和Max key是能查找最大最小值的新功能吗?
今天,在一个偶然的机会,在Mongodb的文档中看到$type(https://docs.mongodb.com/manual/reference/operator/query/type/),试了一下其中的功能,觉得不错,在列表最后TypeNumberAliasNotesMin key-1“minKey”Max key127“maxKey”在Robo 3T中对一个collection进行查找db.getCollection('c1').find({"id"原创 2020-10-20 14:13:25 · 1629 阅读 · 0 评论 -
异步调用的update函数改为同步,循环后统一返回结果
mongodb批量修改数据,其实有内部方法,db.[collectionName].update({查询器},{修改器}),不是这里讨论的重点。今天要讨论的是,异步调用的update函数改为同步,逐条更新后统一返回结果。因为update方法是异步函数,所以要用点技巧来编写。首先明白异步转同步大概有两种方法:async/await和then。平常使用时两个方法都可以,但是使用async.auto,各函数串行调用时,特别是带有for循环的调用中,建议使用async/await。function upd原创 2020-09-03 15:13:53 · 489 阅读 · 0 评论