Bạn có thể thêm chỉ mục văn bản vào định nghĩa giản đồ Mongoose của mình để cho phép bạn sử dụng $text
toán tử trong find
của bạn truy vấn để tìm kiếm tất cả các trường có trong chỉ mục văn bản.
Để tạo chỉ mục hỗ trợ tìm kiếm văn bản, hãy nói, name
và profile.something
:
var schema = new Schema({
name: String,
email: String,
profile: {
something: String,
somethingElse: String
}
});
schema.index({name: 'text', 'profile.something': 'text'});
Hoặc nếu bạn muốn bao gồm tất cả các trường chuỗi trong chỉ mục, hãy sử dụng '$**'
ký tự đại diện:
schema.index({'$**': 'text'});
Điều này sẽ cho phép bạn thực hiện truy vấn tìm kiếm văn bản theo trang như:
MyModel.find({$text: {$search: searchString}})
.skip(20)
.limit(10)
.exec(function(err, docs) { ... });
Để biết thêm chi tiết, hãy đọc toàn bộ tài liệu về Chỉ mục văn bản MongoDB.