ノードに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()
最初のスニペットは何もしませんでした。インデックスは作成されず、エラーはスローされませんでした。