我正在为节点使用 mongodb 本机驱动程序。我ensureIndex({ keywords: 1})
在检索集合后打电话。当我签入 mongo 控制台时,调用db.mycol.getIndexes()
.
我究竟做错了什么?
API 文档有点帮助:http: //mongodb.github.com/node-mongodb-native/api-generated/db.html#ensureindex
您应该在数据库对象上调用 ensureIndex,而不是在集合上。这与 JavaScript 控制台相矛盾。
我遇到了类似的问题,问题是我在调用 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()
第一个片段根本没有做任何事情。没有创建索引,也没有抛出错误。