MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mój selektor $lub w wyrażeniu dopasowania wyzwalacza bazy danych nie działa na drugim poziomie zagnieżdżenia podczas konfigurowania wyzwalacza bazy danych

Udało mi się więc obejść ten problem, zmieniając zapytanie, aby obserwować pole, które jest aktualizowane w tym samym czasie, ale nie jest zagnieżdżone. Myślę, że problem ze sprawdzaniem pola zagnieżdżonego polega na tym, że ChangeEvent updateDescription właściwość nie zawiera rzeczywistego obiektu zagnieżdżonego, który uległ zmianie; zamiast tego zawiera reprezentację zmiany w notacji kropkowej. Więc jeśli spojrzysz na Aktualizację 2 w moim poście zobaczysz, że updatedFields ma tę wartość:{\"someOtherField\":310,\"message.fansNo\":1... zamiast {\"someOtherField\":310,\"message\":{\"fansNo\":1... . Używając message.fansNo w zapytaniu $match Mongo będzie szukać tego kształtu obiektu:{\"message\":{\"fansNo\":1... , co w tym przypadku nie pasuje. „Prawdziwym” rozwiązaniem może być uniknięcie . w message.fansNo w moim wyrażeniu dopasowującym, ale nie udało mi się, aby to zadziałało (patrz ten wątek ).

Tak więc „rozwiązanie”, które zadziałało dla mnie, jest tak naprawdę obejściem, które działa w moim konkretnym przypadku użycia:zdarza się, że someOtherField jest zawsze aktualizowany wraz z message.fansNo i someOtherField nie jest zagnieżdżony. Więc mogę dopasować someOtherField bez martwienia się o zagnieżdżanie. Zasadniczo to wyrażenie dopasowujące daje mi oczekiwane wyniki:

{
  "$or": [
    {
      "updateDescription.updatedFields.someOtherField": {"$exists":true}
    },
    {
      "updateDescription.updatedFields.someOtherField":{"$exists":true}
    }
  ]
}

Mam nadzieję, że to pomoże komuś innemu!




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Instalacja MongoDB

  2. Wstaw wartości domyślne nie działają mongodb

  3. Mongoose:Jak pobrać statystyki danych z ostatnich 7 dni z DB?

  4. zaktualizować w mongodb za pomocą zapytania $in?

  5. Jak zwrócić poddokumenty z obiektu w tablicy z Meteor i MongoDB?