Tôi có một bộ sưu tập mà tôi không cần bất kỳ chỉ mục nào. Tôi chỉ lưu trữ thời hạn và ngày tìm kiếm của người dùng, do đó, bộ sưu tập của tôi thực sự đơn giản.Tôi có thể xóa chỉ mục MongoDB mặc định không?
class UserSearch {
public string Term {get; set;}
pulic DateTime Date {get;set;}
}
Khi tôi lưu trữ một mục UserSearch, bộ sưu tập của tôi có _id và chỉ mục mặc định trên đó.
Từ kiến thức của tôi, các trường "_id" sẽ được lập chỉ mục trong ram, vì vậy tôi không muốn chi tiêu bộ nhớ ram cho bộ sưu tập mà tôi vừa lưu trữ và tôi tính toán 12 giờ một lần.
Tôi cố xóa nó nhưng không thể.
var indexes = UserSearch(true).GetIndexes();
//delete UserSearch Default Index
if(UserSearch(true).IndexExistsByName("_id_"))
{
UserSearch(true).DropIndexByName("_id_");
}
Bất kỳ đề xuất/giải pháp nào?
Thực ra bạn không cần _id để nhân bản hoặc sharding. Bạn có thể đặt bất kỳ chỉ mục hoặc chỉ mục hợp chất nào khác. –
@AdrianLopez Vui lòng lưu ý Cảnh báo: 'QUAN TRỌNG Đối với các bản sao, không đặt autoIndexId thành false.' https://docs.mongodb.com/manual/reference/method/db.createCollection/#db.createCollection –
Tôi đã đề cập đến điểm đó trong câu trả lời của mình @KevinJohnson – styvane