MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Xem tạo tài liệu với MongoDB Streams

Bạn cần:

  1. Chỉ định operationType: 'insert' . Vì bạn không muốn theo dõi các bản cập nhật, bạn không cần updateLookup .
  2. Tạo đường ống tổng hợp thích hợp cho bộ lọc của bạn bao gồm operationType .
  3. Đường ống tổng hợp lọc các tài liệu được trả về bởi watch() . Một kết quả mẫu nằm trong trang Sự kiện thay đổi .

watch() trả về một ChangeStream . Nó kích hoạt close , change , enderror sự kiện. Xem ChangeStream để biết thêm chi tiết.

Đây là ví dụ đầy đủ về luồng thay đổi lắng nghe trên insert hoạt động trên cơ sở dữ liệu test bộ sưu tập test . Nó sẽ xuất ra các tài liệu có trường {a: 1} ('fullDocument.a': 1 ) và sẽ bỏ qua các cập nhật, chèn các giá trị khác của a hoặc bất kỳ thứ gì không có trường 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. nhiều hơn một chỉ mục 2dsphere, không chắc chắn cái nào sẽ chạy geoNear

  2. Làm cách nào để thực hiện tìm kiếm bằng cách sử dụng $ geoIntersects / 2dsphere trong trường con mảng?

  3. Bộ giải mã MongoDB BSON không được sử dụng khi mã hóa đối tượng

  4. Cách tốt nhất để lưu trữ ngày sinh trong MongoDB là gì?

  5. MongoDB:hết bộ nhớ