1

ローカルにセットアップされたMongoDBコレクションにバルクデータを追加しようとしている時間から、1つまたは複数のキーの一意のインデックスを除いてすべてが設定されます:(

私はこれを使用しました:

ensureIndex({appid:1, userid:1}, {unique:true, dropDups:true, background:true})

次に、これ(なんらかの理由で、複数のキーのインデックスが機能していないと思います)

ensureIndex({userid:1}, {unique:true, dropDups:true, background:true})

上記の行を使用した後、phpスクリプトから(insertとbatchInsertの両方を介して)何百万もの行を挿入しようとしましたが、重複するユーザーIDが存在するたびに:'(これについて教えてください:(

4

2 に答える 2

1

ensureIndex は既存のインデックスを上書きしないことに気付きました。代わりに、まず既存のインデックスを削除してから、ensureIndex を実行する必要があると思います。

于 2011-09-14T02:39:10.387 に答える
0

インデックスが作成されたことを確認することをお勧めします。デフォルトでは、書き込み操作(インデックスの作成など)はファイアアンドフォーゲットであり、エラー/成功を待ちません。これは、ドライバー(phpクライアントライブラリ)のバグである可能性があります。

あなたが実行することができます

db.coll.getIndexes()

コレクションのインデックスを一覧表示します。

于 2010-11-20T19:04:32.760 に答える