我尝试从MongoDB订阅监视,但它不起作用。这是我的订阅代码:
CodecRegistry pojoCodecRegistry = org.bson.codecs.configuration.CodecRegistries.
fromRegistries(MongoClientSettings.getDefaultCodecRegistry(), org.bson.codecs.configuration.CodecRegistries.fromProviders(PojoCodecProvider
.builder()
.automatic(true)
.build()));
MongoDatabase db = mongoClient.getDatabase("test").withCodecRegistry(pojoCodecRegistry);
MongoCollection<Product> collection = db.getCollection("product", Product.class);
collection.watch(Product.class)
.subscribe(new Subscriber<ChangeStreamDocument<Product>>() {
@Override
public void onSubscribe(Subscription subscription) {
System.out.println("onSubscribe");
}
@Override
public void onNext(ChangeStreamDocument<Product> documentChangeStreamDocument) {
System.out.println("onNext");
}
@Override
public void onError(Throwable throwable) {
System.out.println("onError");
}
@Override
public void onComplete() {
System.out.println("onComplete");
}
});
我只能在控制台上看到此文本“ onSubscribe”,但不适用于功能onNext。我不知道我在做什么错。
谢谢您的帮助。
答案 0 :(得分:0)
我遇到了同样的问题。 你的mongoDB版本是什么 我将MongoDB版本更新为V4.2,添加了副本集,然后可以正常使用
obj.set({
top: topBoundary,
left: leftBoundary,
});
if (obj.width > obj.height) {
obj.set({
width: obj.height * (cellWidth / cellHeight),
height: obj.height,
scaleX: cellHeight / obj.height,
scaleY: cellHeight / obj.height,
});
} else {
obj.set({
width: obj.width,
height: obj.width * (cellHeight / cellWidth),
scaleX: cellWidth / obj.width,
scaleY: cellWidth / obj.width,
});
}