作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试查看 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/
我正在尝试查看 MongoDB 更改流中特定字段 status 的更新。 来自Change Event documentation页面,更改流将输出此文档: { _id : { }, "
我是一名优秀的程序员,十分优秀!