Node.js mongo native ensureIndex不创建索引

Node.js mongo native ensureIndex不创建索引,node.js,mongodb,Node.js,Mongodb,我正在为节点使用mongodb本机驱动程序。检索集合后,我调用ensureIndex({keywords:1})。当我在mongo控制台中进行检查时,调用db.mycl.getIndexes()时不会显示任何内容 我做错了什么?API文档有点帮助: 应该对数据库对象而不是集合调用ensureIndex。这与JavaScript控制台相矛盾。我遇到了类似的问题,问题是在调用ensureIndex之前我没有打开数据库。我所做的是(咖啡剧本) 有效的是 db.open (err,database) -

我正在为节点使用mongodb本机驱动程序。检索集合后,我调用
ensureIndex({keywords:1})
。当我在mongo控制台中进行检查时,调用
db.mycl.getIndexes()
时不会显示任何内容


我做错了什么?

API文档有点帮助:


应该对数据库对象而不是集合调用ensureIndex。这与JavaScript控制台相矛盾。

我遇到了类似的问题,问题是在调用ensureIndex之前我没有打开数据库。我所做的是(咖啡剧本)

有效的是

db.open (err,database) ->
    db.collection('resources').ensureIndex {"$**": "text"}, {name: "email_index_text"},(err, indexName) ->
        console.log indexName
        console.log err
        db.close()

第一个片段什么也没做。没有创建索引,也没有抛出错误。

您可以在下面添加文本作为答案。这是堆栈溢出方式,只需像其他人一样回答您的问题。两天后(如果没有更好的答案),你甚至可以接受自己的答案是正确的。当其他人看到你的问题已经解决时会更好。不确定这是否已更改,但
集合。ensureIndex
似乎在本地对我有效。代码示例使用
collection.ensureIndex
。出于某种原因,
collection.ensureIndex(…)
既不为我创建索引也不运行回调,但
db.ensureIndex(collection,…)
会创建索引。使用MongoDB 2.4.10,节点MongoDB native 1.4.2。
db.open (err,database) ->
    db.collection('resources').ensureIndex {"$**": "text"}, {name: "email_index_text"},(err, indexName) ->
        console.log indexName
        console.log err
        db.close()