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 监听指定字段的变化的主要内容,如果未能解决你的问题,请参考以下文章

computed 和 watch 区别

vue中watch简单使用

vue的watch中的immediate什么意思

vue 中watch监听对象,求大神解答

uni-app watch事件监听三种用法

uni-app watch事件监听三种用法