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.