11

インデックスを必要としないコレクションが1つあります。ユーザーの検索用語と日付を保存するだけなので、コレクションは非常にシンプルです。

class UserSearch {

public string Term {get; set;}
pulic DateTime Date {get;set;}

}

1つのUserSearchアイテムを保存すると、コレクションには_idとデフォルトのインデックスがあります。

私の知る限り、これらの「_id」フィールドはRAMでインデックス付けされるため、保存するだけのコレクションにRAMメモリを使用したくないので、12時間ごとに何かを計算しています。

削除しようとしましたが、削除できません。

   var indexes = UserSearch(true).GetIndexes();

   //delete UserSearch Default Index
   if(UserSearch(true).IndexExistsByName("_id_"))
   {
     UserSearch(true).DropIndexByName("_id_");
   }

何か提案/解決策はありますか?

4

2 に答える 2

18

いいえ、削除できません。

MongoDBのドキュメントから、私の強調。

_idインデックス

上限付きコレクションを除くすべてのコレクションについて、_idフィールドのインデックスが自動的に作成されます。このインデックスは特別であり、 削除できません。_idインデックスは、そのキーに一意性を適用します(シャーディングを使用する一部の状況を除く)。

于 2012-09-15T16:11:34.963 に答える
4

_id一度作成したインデックスは削除できません。ただし、オプションを使用_idに設定することでインデックスなしでコレクションを作成できますが、コレクションを複製することはできません。autoIndexIdfalsedb.createCollection_id

于 2015-07-24T16:42:05.660 に答える