小编Bea*_*ice的帖子

mongodb在排序时不使用索引?

我有一个这些索引的集合:

> db.message.getIndexKeys()
[
    {
        "_id" : 1
    },
    {
        "msgid" : 1
    },
    {
        "keywords" : 1,
        "msgid" : 1
    }
]
Run Code Online (Sandbox Code Playgroud)

和查询一样

db.message.find({'keywords': {'$all': ['apple', 'banana']}}).limit(30).explain()
Run Code Online (Sandbox Code Playgroud)

索引工作正常

{
    "cursor" : "BtreeCursor keywords_1_msgid_1",    
    "nscanned" : 96,
    "nscannedObjects" : 96,
    ...
}
Run Code Online (Sandbox Code Playgroud)

但在使用msgid进行排序时:

db.message.find({'keywords': {'$all': ['apple', 'banana']}})
    .sort({msgid:-1})
    .limit(30).explain()
Run Code Online (Sandbox Code Playgroud)

mongodb不再使用索引:

{
"cursor" : "BtreeCursor msgid_1 reverse",
"nscanned" : 1784455,
"nscannedObjects" : 1784455,
...
}
Run Code Online (Sandbox Code Playgroud)

任何解决方案

mongodb nosql mongodb-indexes

13
推荐指数
1
解决办法
6941
查看次数

nodejs 中使用的默认 CA 证书在哪里?

我正在连接到一个服务器,其证书由我自己的 CA 签名,该 CA 的证书已安装到系统的钥匙串中。

连接openssl s_client -connect some.whereVerify return code: 0 (ok)

但我无法连接 nodejs 的 tls/https 模块,该模块失败了 Error: SELF_SIGNED_CERT_IN_CHAIN

但连接到普通服务器(即 google.com:443)工作正常。

似乎 nodejs 的 openssl 没有与系统的 openssl 共享相同的钥匙串。

但我找不到它在哪里。我试过覆盖SSL_CERT_DIR但似乎没有用。

顺便说一句:我可以通过设置绕过服务器验证NODE_TLS_REJECT_UNAUTHORIZED=0,但这还不够 ;)

我使用 OSX 10.8.3 和 OpenSSL 0.9.8r,节点 v0.9.8

openssl node.js

3
推荐指数
2
解决办法
5717
查看次数

标签 统计

mongodb ×1

mongodb-indexes ×1

node.js ×1

nosql ×1

openssl ×1