Lỗi là khá chính xác. Những gì bạn đang cố gắng làm là tạo "nhiều truy vấn văn bản" bên trong $or
tình trạng. MongoDB không thể làm điều đó và trên thực tế nó được nêu trong dòng đầu tiên của Hạn chế
trong trang hướng dẫn cho $text
.
Hơn nữa, bạn không phải để làm điều đó, nhưng thay vào đó chỉ định một chỉ mục văn bản trên bộ sưu tập của bạn để tìm kiếm trên nhiều trường nếu được yêu cầu:
db.collection.ensureIndex({ "comments": "text", "title": "text" })
Và sau đó, bạn có thể muốn gán trọng số như được hiển thị ở đây .
Nhưng có vẻ như tất cả những gì bạn thực sự yêu cầu là tìm kiếm "nhiều thuật ngữ". Vì vậy, bạn không sử dụng $or
cho điều này, nhưng chỉ cần gửi danh sách các thuật ngữ được phân tách bằng dấu cách:
db.collection.find({ "$text": { "$search": "something else" } })
Sau đó, bất kỳ từ nào trong danh sách được phân cách bằng dấu cách sẽ được tìm kiếm trong ngữ cảnh của bất kỳ trường nào nằm trong chỉ mục văn bản và bất kỳ tài liệu nào có chứa "bất kỳ" từ nào trong số đó sẽ được trả về. Với các kết quả được sắp xếp theo "trọng số" của nhiều kết quả phù hợp hơn của các từ trong danh sách đó.