GoLang 中用 MongoDB Watch 监听指定字段的变化
Posted flipped
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GoLang 中用 MongoDB Watch 监听指定字段的变化相关的知识,希望对你有一定的参考价值。
需要 MongoDB 3.6 及以上, 需要 ReplicaSet 模式。
监听一个字段的变化:
func watch(coll *mongo.Collection)
match := bson.D"operationType", "update",
"updateDescription.updatedFields.name", bson.D"$exists", true
coll.Watch(context.Background(), mongo.Pipeline"$match", match,
options.ChangeStream().SetFullDocument(options.UpdateLookup))
监听两个字段的变化:
func watch(coll *mongo.Collection)
match := bson.D
"operationType", "update",
"$or", bson.A
bson.D"updateDescription.updatedFields.name",
bson.D"$exists", true,
,
bson.D"updateDescription.updatedFields.age",
bson.D"$exists", true,
,
coll.Watch(context.Background(), mongo.Pipeline"$match", match,
options.ChangeStream().SetFullDocument(options.UpdateLookup))
任意一个变化,用$or
,都变化,用$and
。注意 bson.A
里面是 bson.D
。
以上是关于GoLang 中用 MongoDB Watch 监听指定字段的变化的主要内容,如果未能解决你的问题,请参考以下文章