5

我正在为节点使用 mongodb 本机驱动程序。我ensureIndex({ keywords: 1})在检索集合后打电话。当我签入 mongo 控制台时,调用db.mycol.getIndexes().

我究竟做错了什么?

4

2 回答 2

2

API 文档有点帮助:http: //mongodb.github.com/node-mongodb-native/api-generated/db.html#ensureindex

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

于 2012-11-05T12:29:19.457 回答
0

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

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

有效的是

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

第一个片段根本没有做任何事情。没有创建索引,也没有抛出错误。

于 2014-04-09T21:31:46.600 回答