gpt4 book ai didi

java - 来自 mongoDB 的更改事件中的 updateDescription.updatedFields 为空

转载 作者:可可西里 更新时间:2023-11-01 10:02:03 38 4
gpt4 key购买 nike

我正在尝试查看 MongoDB 更改流中特定字段 status 的更新。

来自Change Event documentation页面,更改流将输出此文档:

{
_id : { <BSON Object> },
"operationType" : "<operation>",
"fullDocument" : { <document> },
"ns" : {
"db" : "<database>",
"coll" : "<collection"
},
"documentKey" : { "_id" : <ObjectId> },
"updateDescription" : {
"updatedFields" : { <document> },
"removedFields" : [ "<field>", ... ]
}
}

我总是获取所有字段,但将 updateDescription.updatedFields 设为 null。

这是我正在使用的 Java 代码

MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
MongoDatabase database = mongoClient.getDatabase("db");
MongoCollection<org.bson.Document> collection = database.getCollection("collection");
List<Bson> pipeline = Collections.singletonList(Aggregates.match(Filters.and(
Document.parse("{'fullDocument.status': { $in: [ 'DONE','ERROR'] }}"),
Filters.exists("updateDescription.updatedFields.status",true),
Filters.in("operationType", ("replace")))));

MongoCursor<ChangeStreamDocument<Document>> cursor = collection.watch(pipeline).iterator();

我在项目中使用这些依赖项

<mongo.java.driver>3.6.3</mongo.java.driver>

<spring.data.mongo.version>1.10.10.RELEASE</spring.data.mongo.version>

最佳答案

我解决了这个问题,我在 Robo 上使用“编辑文档”测试的问题。“编辑文档”不会更新一个字段,它会用具有相同 ID 的新文档替换所有文档。

关于java - 来自 mongoDB 的更改事件中的 updateDescription.updatedFields 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50370895/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com