Có một số tùy chọn mà bạn có thể sử dụng với tìm kiếm văn bản để phù hợp với những nhu cầu đó. Xem xét các tài liệu sau:
{ "text" : "cake" }
{ "text" : "sale" }
{ "text" : "sale cake" }
{ "text" : "cake sale" }
{ "text" : "dress sale" }
{ "text" : "cake sale monday" }
"Danh sách" từ mặc định là hoặc bao gồm, nhưng nếu bạn không phải là và bao gồm bạn "trích dẫn" các từ:
db.words.find( { "$text": { "$search": "\"cake\" \"sale\"" } },{_id: 0})
{ "text" : "cake sale" }
{ "text" : "sale cake" }
{ "text" : "cake sale monday" }
Nếu bạn muốn loại trừ một từ thì bạn đặt tiền tố bằng -
:
db.words.find( { "$text": { "$search": "\"cake\" \"sale\" -monday" } },{_id: 0})
{ "text" : "cake sale" }
{ "text" : "sale cake" }
Và nếu bạn muốn một phần của điều đó dưới dạng cụm từ chính xác thì bạn "trích dẫn" toàn bộ cụm từ:
db.words.find( { "$text": { "$search": "\"cake sale\" -monday" } },{_id: 0})
{ "text" : "cake sale" }
Mặc dù vậy, việc bắt nguồn từ có một vấn đề, vì vậy:
db.words.find( { "$text": { "$search": "test -testing" } },{_id: 0})
Sẽ không thực sự trả về một kết quả.
Xem tài liệu về $text
toán tử cho các ví dụ. Không phải tất cả đều ở đó vào lúc này, nhưng nó đang ngày càng tốt hơn.