项目作者: simagix

项目描述 :
mongo-go-driver examples
高级语言: Go
项目地址: git://github.com/simagix/mongo-go-examples.git
创建时间: 2018-10-10T06:27:15Z
项目社区:https://github.com/simagix/mongo-go-examples

开源协议:MIT License

下载


MongoDB mongo-go-driver and Change Streams Examples

  • 01/09/2020: Replaced with go.mongodb.org/mongo-driver (v1.2.0)
  • 02/25/2019: Replaced with go.mongodb.org/mongo-driver (v1.0.0-rc1)

A MongoDB Change Streams implementation using mongodb-go-driver.

mongo-go-driver Examples

Examples can be found at examples.

  • Aggregate
    • $group
    • $redact
    • $filter
    • $lookup
    • $elemMatch
  • Change Streams
  • CRUD
  • RunCommand
  • Transactions

Change Streams Demo

Set up a replica set

  1. mkdir -p data/db
  2. rm -rf data/db/*
  3. mongod --port 30097 --dbpath data/db --logpath data/mongod.log --fork --wiredTigerCacheSizeGB .5 --replSet replset
  4. mongo --quiet mongodb://localhost:30097/admin --eval 'rs.initiate()'
  5. mongo --quiet mongodb://localhost:30097/argos?replicaSet=replset --eval 'db.oplogs.insert({"_id": "30097", "scores": [100]})'

Case 1: Watch All Changes

  1. argos "mongodb://localhost:30097/?replicaSet=replset"

Case 2: Watch Changes From a Database

  1. argos "mongodb://localhost:30097/argos?replicaSet=replset"

Case 3: Watch Changes From a Collection

  1. argos --collection oplogs "mongodb://localhost:30097/argos?replicaSet=replset"

Case 4: Watch Changes From a Collection With a Pipeline

  1. argos --collection --pipeline '[{"$match": {"operationType": "update"}}]' \
  2. "mongodb://localhost:30097/argos?replicaSet=replset"

Stream POC

It would be nice mongo-go-drive can do stream. See POC for an example.

  1. client.Database(db).Collection(collection).Find(filter).Project(project).Sort(sort).Decode(&docs)