小编Xos*_*fox的帖子

Meteor:隐藏客户端的属性

有没有办法从客户端更新中排除某些属性?

在控制台中检查集合时,不应该看到该属性

meteor

11
推荐指数
1
解决办法
1617
查看次数

让用户将记录器注入nodejs模块的最佳实践

我为nodejs编写了这个模块,可用于从任何地方通过sockjs向客户端分发事件.

现在我想包括一些可配置的日志记录机制.

目前,我正在添加winston作为依赖项,要求它作为每个类中的记录器并使用logger.error,logger.warn,...

#logger.js
var logger = require('winston');
module.exports=logger;
Run Code Online (Sandbox Code Playgroud)

#myClass
var logger = require("./logger");
logger.error("Something went wrong")
Run Code Online (Sandbox Code Playgroud)

现在,如何让记录器可以被自定义记录器替换,或者让用户从OUTSIDE my module配置日志级别?

他们当然不必触摸模块代码来更改记录器,但能够使用loglevel创建记录器,我的模块应该使用它(如果可用).

有关如何做到这一点的任何推荐?

或者是对"winston"的硬依赖,并且可以通过npm-config配置日志级别吗?

logging dependency-injection node.js winston

6
推荐指数
1
解决办法
3444
查看次数

如何加速具有多个条件的 mongodb 地理查询?

地位:

据我从阅读 mongodb 文档以及使用索引、查询和监控结果中了解到,我对 mongodb 中地理位置查询工作方式的理解如下:

  • 从指定位置开始
  • 从近到远查看每个文件
  • 保留那些匹配的附加查询条件,直到达到number_limitdistance_limit

例子

为了展示我们正在尝试做的事情:让我们以 mongodb 教程示例为基础:https : //docs.mongodb.com/manual/tutorial/geospatial-tutorial/

假设我们有一个餐厅列表,上面有位置和更多信息,例如established_at, type(chinese, thai, italian, ...), priceOfACoke, numberOfWaiters, wheelchairAccess, ...

问题:

假设您要查询 A 的美国所有餐厅的集合,以返回所有 2-5 年前成立的靠近匹兹堡市中心的意大利餐厅,这些餐厅有轮椅通道和 50 多个服务员,其中一个可乐比1美元便宜。

这是一个带有限制性附加条件且没有距离限制的地理查询;并且由于“服务员> 50 比 1 美元便宜的可乐”过滤掉了大部分/所有结果,这个查询似乎贯穿整个集合并且需要很长时间。

如果在没有“geoNear”的情况下运行,假设有相关字段的组合索引,则此查询非常快,即使 100 万个文档中只有 10 个结果。

然而,一geoNear上场,表现就惨不忍睹

据我了解,每个集合只能有一个地理索引,并且地理索引中只能有一个附加属性,因此没有太多工作可以帮助 mongodb 找到具有多个标准的结果,因为似乎没有使用传统索引. 此外,在使用聚合时,geo 必须是第一个过滤器......

是否有任何提示或指示可以加快这样的查询速度?

如果可能,我不希望得到“使用 ElasticSearch”或“使用多个集合”的响应——我仍然希望有另一种方法可以帮助 mongodb 在开始执行 geoNear 部分之前减少要检查的文档数量。

performance geolocation mongodb

5
推荐指数
0
解决办法
1110
查看次数

如何使用Ansible挂载fstab上列出的所有分区

在使用Ansible的lineinfile模块添加多个挂载点后/etc/fstab,我想运行一个简单的方法mount -a来实现它们.

它可以使用

  - name: mount all
    command: mount -a
    become: true
Run Code Online (Sandbox Code Playgroud)

但是,ansible坚持建议使用该mount模块

[WARNING]: Consider using mount module rather than running mount
Run Code Online (Sandbox Code Playgroud)

但据我所知,没有简单的选择.

我错过了什么吗?

ansible

3
推荐指数
1
解决办法
6504
查看次数