【发布时间】:2018-01-02 11:20:09
【问题描述】:
如何在 mongo db 中创建一个可以公开集合中所有文档的视图?我使用了以下代码:
java.util.List<Bson> tstL = new ArrayList<>();
db.createView("tst_view","collection_name",tstL);
我正在尝试使用管道的空列表,但它不起作用。你能帮忙吗?
【问题讨论】:
-
你能具体说明“它不起作用”是什么意思吗?
createView方法会抛出异常吗?createView方法是否成功完成,但是当您尝试使用视图时,视图不存在?您提供的详细信息越多,别人帮助您的机会就越大。 -
也许“问题”是目标数据库中似乎不存在该视图?如果是这样,那是因为视图是在读取操作期间按需计算的。视图不像集合那样具体化,而是目标数据库将包含
system.views中定义您的视图的文档,您将能够使用此视图 - 通过 Mongo Java 驱动程序 - 与使用集合的方式大致相同. -
createView 失败,因为我不能使用空列表作为管道。但是如果我不想在任何条件下过滤,我不明白管道应该是什么。我只想在视图中公开集合中的所有数据。
-
我可以使用 mongodb-driver-3.5.0.jar 成功调用
createView("a", "b", new ArrayList<>())。您能否具体说明“失败”的含义?驱动程序会抛出异常吗?如果是这样,您能否更新您的问题以包含堆栈跟踪? -
谢谢。有效。我之前有超时问题。当我登录其中一个节点时,我可以看到它在连接到 mongodb 时超时。
标签: mongodb mongodb-java mongodb-java-3.3.0