MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Моят $or селектор в израз за съвпадение на тригер на база данни не работи на второ ниво на влагане при конфигуриране на тригер на база данни

Така че успях да заобиколя този проблем, като промених заявката, за да следя за поле, което се актуализира по същото време, но не е вложено. Мисля, че проблемът с проверката за вложено поле е, че ChangeEvent updateDescription на 's свойството не съдържа действителния вложен обект, който е променен; вместо това съдържа точковото представяне на промяната. Така че, ако погледнете Актуализация 2 в публикацията ми ще видите това updatedFields има тази стойност:{\"someOtherField\":310,\"message.fansNo\":1... вместо {\"someOtherField\":310,\"message\":{\"fansNo\":1... . Чрез използване на message.fansNo в заявката $match Mongo ще търси тази форма на обект:{\"message\":{\"fansNo\":1... , което не съвпада в този случай. „Истинско“ решение тук може да бъде избягване на . в message.fansNo в моя израз за съвпадение, но не можах да накарам това да работи (вижте тази тема ).

Така че „решението“, което работи за мен, всъщност е просто заобиколно решение, което работи за моя конкретен случай на употреба:така се случва, че someOtherField винаги се актуализира заедно с message.fansNo и someOtherField не е вложено. Така че мога да съпоставя someOtherField без да се притеснявате за гнездене. По принцип този израз за съвпадение ми дава резултатите, които искам:

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

Надявам се това да помогне на някой друг!




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Пролетни данни mongodb, как да настроя SSL?

  2. Размерът на базата данни на диска се увеличава като кратно на CSV файла I mongoimport?

  3. Данните са нулеви след запазване на обект с Moongose ​​и GraphQL

  4. Mongoose findByIdAndUpdate не връща правилния модел

  5. Клонирайте колекция в MongoDB