sql >> データベース >  >> NoSQL >> MongoDB

MongoDBStreamsでドキュメントの作成を見る

    次のことを行う必要があります:

    1. operationType: 'insert'を指定します 。更新を監視したくないので、updateLookupは必要ありません。 。
    2. 適切な集約パイプライン を作成します operationTypeを含むフィルター用 。
    3. 集約パイプラインは、watch()によって返されるドキュメントをフィルタリングします 。出力例は、イベントの変更ページ> 。

    watch() ChangeStreamを返します 。 closeを起動します 、changeend 、およびerror イベント。 ChangeStream を参照してください 詳細については。

    これは、insertをリッスンするチェンジストリームの完全な例です。 データベースの操作test コレクションtest{a: 1}フィールドを持つドキュメントを出力します ('fullDocument.a': 1 )、更新、aの他の値の挿入を無視します 、またはフィールド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. 配列にある複合型のフィールドの名前を変更します

    2. AzureでのMongoDB接続の問題

    3. MongoDBでカスタムオブジェクトIDを作成する

    4. 'mongorestore'は、内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません