Wpis z mikrobloga

@Roballo: Eeee, a jesteś pewien, że tak ma to wyglądać? Osobiście dziwi mnie takie zagnieżdżanie i świadczy albo o złej konstrukcji bazy, albo o złym doborze narzędzia i powinieneś robić to w zwykłej relacyjnej, a nie mongo.

Zostawiam koment żeby zobaczyć jak ktoś ci odpowie bo jestem ciekaw ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@WaveCreator: osobiście inaczej bym to zaprojektował, ale niestety wszedłem w takie coś i muszę znaleźć rozwiązanie w query, przeprojektowanie ani użycie aplikacji odpada ()/
  • Odpowiedz
@Roballo: duża kolekcja? bo jeśli mała i performance nie jest problemem to ja bym wyciągnął findem wszystkie dokumenty, następnie w skrypcie przeszukał rekurencyjnie wszystkie wewnętrzne obiekty i usunął konkretne wartości z konkretnych pól. Następie zupdate'ował tylko zmodyfikowane dokumenty.
  • Odpowiedz
@kszych: niestety diabelstwo po wstępnym przeszukaniu jest dość spore zwłaszcza doliczając zagnieżdżenia. Czas co prawda nie gra roli za dużej, ale chciałbym znaleźć choć trochę lepsze od tego rozwiązanie
  • Odpowiedz
@kszych: liczyłem, że coś z "$[]" razem z $pull da się ugrać bo takie coś dla pojedynczego zagnieżdżenia uszło. No będę próbował ( ͡° ʖ̯ ͡°)
  • Odpowiedz
@Roballo: $[] nie przejdzie, ale możesz użyć $elemMatch do zagnieżdżonyh tablic obiektów

({'ObjectAA.arrayOfObjectsBB':{$elemMatch:{ "arrayOfObjectsBB": {$elemMatch: {"arrayOfObjectsCC": {$elemMatch: {"arrayOfIds": {$elemMatch: {$in:[1,4]}}}}}}}}})

to tak z pamięci, więc pewnie z błędami, ale koncepcje powinieneś mieć
  • Odpowiedz