我们如何插入可用的实时mongocxx文件。?

时间:2018-01-19 23:14:18

标签: c++ mongodb meteor mongo-cxx-driver

我通过c ++ API将图像插入到mongodb中,如下所示:

   bsoncxx::document::value document = bsoncxx::builder::basic::make_document
                            (kvp("userId", "xZcuQet3QMmS7Q2yc"),
                             kvp("source",encoded_png),
                             kvp("createdAt",bsoncxx::types::b_date(std::chrono::system_clock::now()))
                            );
                    bsoncxx::stdx::optional<mongocxx::result::insert_one> result =
                            coll.insert_one(document.view());

我也是从MeteorJs实时提取的。我遇到了几秒钟(5 - 7秒)的延迟。

c ++代码是否可能不刷新插入?

如何立即使用冲洗实时插入?

这可能吗?

2 个答案:

答案 0 :(得分:2)

  

c ++代码是否有可能不刷新插入?

您可以检查MongoDB集合是否正确插入了文档。在这方面,您可以使用MongoDB Shell或其他MongoDB管理器(例如RoboMongo)。

  

如何立即使用冲洗实时插入?

您可以从Meteor应用程序的服务器端Publish a publication订阅并订阅它以立即获取已发布的数据。

答案 1 :(得分:1)

使用oplog拖尾完成更改检测。这不是在开发模式下完成的。从Meteor代码更新会立即触发更新,但是来自外部源(如Mongo shell或您的C ++代码)的mongo更新需要一些时间才能完成,这就是您所看到的。

在制作中,如果你正确设置了oplog尾部,你就不应该看到延迟。