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

Obejrzyj tworzenie dokumentów za pomocą strumieni MongoDB

Musisz:

  1. Określ operationType: 'insert' . Ponieważ nie chcesz monitorować aktualizacji, nie potrzebujesz funkcji updateLookup .
  2. Utwórz odpowiedni potok agregacji dla Twojego filtra, który zawiera operationType .
  3. Potok agregacji filtruje dokumenty zwracane przez watch() . Przykładowe dane wyjściowe znajdują się na stronie zmiany zdarzeń .

watch() zwraca ChangeStream . Odpala close , change , end i error wydarzenia. Zobacz ChangeStream po więcej szczegółów.

Oto pełny przykład strumienia zmian, który nasłuchuje insert operacja na bazie danych test kolekcja test . Wygeneruje dokumenty, które mają pole {a: 1} ('fullDocument.a': 1 ) i zignoruje aktualizacje, wstawia inne wartości a lub cokolwiek bez pola a .

const MongoClient = require('mongodb').MongoClient
const uri = 'mongodb://localhost:27017/test?replicaSet=replset'

const insert_pipeline = [
  {$match: {operationType: 'insert', 'fullDocument.a': 1}}
]

function watch_insert(con, db, coll) {
  console.log(new Date() + ' watching: ' + coll)
  con.db(db).collection(coll).watch(insert_pipeline)
    .on('change', data => {
      console.log(data)
    })
}

async function run() {
  con = await MongoClient.connect(uri, {"useNewUrlParser": true})
  watch_insert(con, 'test', 'test')
}

run()



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pobieranie MongoDB w systemie Linux do nasłuchiwania połączeń zdalnych

  2. Jak opublikować dane MongoDB w zagnieżdżonej tablicy za pomocą NODE.js i Express

  3. Integracja mongodb z elasticsearch w środowisku node.js

  4. Używanie @Resource injection dla Mongo db, wewnątrz Web Bundle wewnątrz OSGI, pod Liberty Profile

  5. Zapytanie o typ ciągu Date w mongodb