/ / Как да се уведомяваме за външни промени в монго колекция с платна? - javascript, mongodb, sails.js

Как да получавате известие за външни промени в колекцията mongo с платна? - javascript, mongodb, sails.js

Разработвам приложение, базирано на mongo и sails, и тествам как работи актуалното обновяване на платната.

Сега използвам платна 0.9.16, но се интересувам и от отговори за ветрилата 0.10.

Искам списъкът да бъде актуализиран при нови документиса създадени в съответната колекция. Това работи, когато добавям документи чрез гнезда за платна, изпращайки съобщение. В този случай виждам други клиенти, получаващи съобщение, а списъкът от страна на клиента се актуализира.

Има писмена външна служба на монгобаза данни трудно, така че колекцията се разраства през цялото време. Новите елементи, създадени директно от външната услуга в базата данни, не се уведомяват за слушане на клиенти, така че трябва да обновя уеб страницата, за да покажа тези елементи.

въпроси:

  • ли трябва да работят уведомления за създаването на бази данни, когато тези творения не идват от самите платна?
  • ако да, това изисква ли специална конфигурация?
  • ако не, какъв би бил препоръчителният начин да се запази списъкът с клиентска страна за актуализирана колекция, когато базата данни се променя?

Наздраве

Отговори:

3 за отговор № 1

Много интересен въпрос, макар и не необичаен: момчетата от метеор имаха същия проблем. По принцип, без да гледате БД, можете дори да мащабирате вашето приложение хоризонтално, тъй като един сървърен процес няма да има представа какви промени в данните са направени от друг.

Първоначално те са го подправили чрез анкетиранена всеки 10 секунди. Очевидно е, че това не е най-доброто решение, така че завършиха с още едно (което също може да работи за Sails): сега те следят MongoDB oplog и да изстрелва актуализация, когато има промяна в съответната колекция.

За да отговорите на въпросите си:

  • AFAIK, процесът на Sails няма никаква представа за каквито и да било външни промени в DB;
  • така, нищо за конфигуриране;
  • начин за проследяване на външни актуализации на DB (MongoDB) ще използва един от наблюдателите на oplog, които можете да намерите в npm (напр. това или един от тезии т.н.) да слушате промените и да задействате актуализации, когато има нужда.

За съжаление, няма готови за употреба решения тук, но се надявам най-малкото, че сега имате идея как да я накарате да работи.