sql >> Database >  >> NoSQL >> MongoDB

Bekijk het maken van documenten met MongoDB Streams

Je zou het volgende moeten doen:

  1. Specificeer operationType: 'insert' . Omdat je geen updates wilt volgen, heb je updateLookup niet nodig .
  2. Maak een goede aggregatiepijplijn voor uw filter dat operationType . bevat .
  3. De aggregatiepijplijn filtert documenten die worden geretourneerd door watch() . Een voorbeelduitvoer vindt u op de Change Events-pagina .

watch() retourneert een ChangeStream . Het vuurt close . af , change , end , en error evenementen. Zie ChangeStream voor meer details.

Hier is een volledig voorbeeld van een changestream die luistert op insert bewerking op de database test verzameling test . Het zal documenten uitvoeren met het veld {a: 1} ('fullDocument.a': 1 ) en negeert updates, invoegingen van andere waarden van a , of iets anders zonder het veld 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. MongoClient werkt niet met php

  2. Meteor.js en Mongoose Compatibiliteit

  3. Kan collecties in mongo DB niet zien wanneer verbonden via R

  4. Vind alle objecten in de collectie Java Mongodb