Mam zbiór dokumentów w następującej formie:Sortowanie według trafności z MongoDB
{ _id: ObjectId(...)
, title: "foo"
, tags: ["bar", "baz", "qux"]
}
Kwerenda powinna znaleźć wszystkie dokumenty z dowolnego z tych tagów. Obecnie używam tego zapytania:
{ "tags": { "$in": ["bar", "hello"] } }
I działa; wszystkie dokumenty oznaczone "bar" lub "hello" są zwracane.
Jednak chcę sortować według trafności, tj. Im więcej pasujących tagów to , tym wcześniej dokument powinien pojawić się w wyniku. Na przykład dokument oznaczony ["bar", "hello", "baz"]
powinien znajdować się wyżej w wynikach niż dokument oznaczony ["bar", "baz", "boo"]
dla zapytania . Jak mogę to osiągnąć?
Myślę, że to {$ unwind: "$ tags"}, a nie {$ unwind: {"$ tags"}} –
Co wiesz - masz rację, pierwszy zauważysz za cztery lata? :) –
Przypuszczam. Niesamowita odpowiedź - ogromna pomoc. Dzięki. –