Aktywne Wpisy

MonazoPL +60

Bipolar- +51
Znalezienie laski, która nie ma psa albo kota, i nie planuje mieć psa ani kota w przyszłości jest obecnie praktycznie niemożliwe
#tinder #zwiazki #rozowepaski #psiarze #logikarozowychpaskow
#tinder #zwiazki #rozowepaski #psiarze #logikarozowychpaskow





Każdy rekord w bazie ma pole, w którym trzymam tablicę z tagami (każdy z nich ma po 3). Każdy tag ma po 5 możliwości tj. pierwszy: "a1, a2, a3, a4, a5", drugi: "b1, b2, b3, b4, b5", trzeci: "c1, c2, c3, c4, c5".
Przesyłam na backend tablicę z tagami, żeby po nich szukać odpowiednich rekordów. Ta tablica może wyglądać np tak: ["a1", "a2", "c1", b4"] albo ["a1", "a2", "a3"] itd. tj. nie ma sprecyzowanej ilości możliwych tagów przy danym zapytaniu (maksymalnie może ich być 15). Teraz chciałbym, żeby zwracało mi rekordy po tych właśnie tagach, ALE dokładnie po tych tagach, po których leci zapytanie, a nie rekordy, w których pojawiają się pojedyncze tagi.
Np. tablica z frontu ma taką postać ["wypok", "rogale"] -> zwraca mi rekordy w których znajdują się te tagi, a nie szuka mi pojedynczych tagów i zwraca rekordy w których znajdują się "wypok" albo "rogale".
db.collection.find( { "tags": {$in: tagsArr } ); -> takie zapytanie zwraca mi wszystkie wyniki, w których znajduje się pojedynczy tag. Próbowałem też z aggregate z $match, ale efekt jest ten sam.
Próbowałem napisać zapytanie przy pomocy $or i $and. Wtedy każdy rekord miał osobne pole dla danej kategorii tj. A dla a1,a2.. itd. B dla b1... i C dla c1...
upraszczając:
$or( ($and( A: $in tagsarr, B: $in tagsarr, C: $in tagsarr), ($and..... tutaj dalej pozostałe kombinacje tj. AB, AC, BC i pojedyncze A B C)) -> no i to działało, ale tylko jeśli w każdym z pól znalazło cokolwiek z tablicy (albo jakiś inny warunek, sprawdzało tylko pierwszego $anda w kolejności, do kolejnych nie przechodziło), a to nie jest wymagane, bo może być tak, że tylko A i C będzie przesyłane.
Będę wdzięczy za pomoc, już drugi dzień nad tym siedzę i nie mogę sobie poradzić. Z góry dzięki Mirky.
jak masz w dokumentacji napisane jak coś działa, a nie działa jak jest napisane to raczej nie jest skopana rzecz, której dokumentacje czytasz tylko Twój kod