Giải pháp:
Đặt default_language
và language_override
thành cùng một giá trị chữ (trong trường hợp của bạn là "vi").
Làm sao tôi đến được đây ...
Tôi gặp vấn đề tương tự, cũng trên Mongo 2.6.1.
Trong trường hợp của tôi, tôi đã tạo chỉ mục bằng language_override
trỏ đến trường ngôn ngữ nơi đã có các tài liệu có giá trị không được hỗ trợ (ví dụ:'ar' - tiếng Ả Rập).
Đây là cách tôi tạo chỉ mục:
db.users.ensureIndex({
"displayName": "text",
"about": "text",
"email": "text"
}, {
"name": "users_full_text",
"default_language": "en",
"language_override": "language"
});
Tôi đã hy vọng nó sẽ trở lại default_language
khi language_override
giá trị không được hỗ trợ, nhưng dường như không. Đây là những gì Mongo nói:
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 3,
"ok" : 0,
"errmsg" : "language override unsupported: ar",
"code" : 17262
}
OK, tốt thôi, vì vậy chỉ mục chưa được tạo nhưng tôi có thể tạo nó mà không có language_override, phải không? Sai - mongo cung cấp cho tôi lỗi tương tự mặc dù tôi không còn chỉ định language_override nữa .
Nỗ lực tạo chỉ mục không thành công dường như đã để lại một số phiên bản bị hỏng của chỉ mục không hiển thị ở bất kỳ đâu nên tôi không thể bỏ nó (nó không xuất hiện trong db.users.getIndexes () và bỏ tên nó không hoạt động).
Cuối cùng, tôi đã sửa được chỉ mục bằng cách đặt language_override
thành giá trị chữ 'en', như thế này:
db.users.ensureIndex({
"displayName": "text",
"about": "text",
"email": "text"
}, {
"name": "users_full_text",
"default_language": "en",
"language_override": "en"
});
... mà Mongo trả lời:
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 3,
"numIndexesAfter" : 4,
"ok" : 1
}
Tiếng hoan hô.