我是Java和MongoDB的新手,尽管有几个小时搞乱这个,但我无法轻松地使用Java Mongodb-Driver客户端3.2.2检索一个简单的文档。
连接很好,我可以查看收藏夹等。
我的问题行如下:
Document profile = collection.find(new Document("_id", 10));
然而,当我编译时,我收到以下错误:
Java:incompatible types: com.mongodb.client.Finditerable<org.bson.Document> cannot be converted to org.bson.Document
现在我可以解决这个问题,因为Stack Overflow上的一些谷歌搜索产生了以下代码,但这对我来说似乎有点不必要了:
Document profile = collection.find(new Document("_id", 10)).projection(Projections.fields(Projections.include("firstName")))).first();
在我尝试将类型更改为BasicDBObject但没有运气的时候,我感到难过。
答案 0 :(得分:2)
编译器准确地告诉您问题所在 - 尝试以下方法:
CheckNetIsolation
请注意,Document profile = collection
.find(new Document("_id", 10))
.first();
会返回FindIterable,因此您需要致电find
以获取first()
。
我还建议您阅读this教程 - 您将学到很多东西。
答案 1 :(得分:2)
您不需要library(dplyr)
library(purrr)
library(tidyr)
library(lubridate)
tibble(aw) %>%
mutate(aw_sunday = aw + lubridate::days(4)) %>% #Find the first Sunday after each Ash Wednesday
mutate(extra_days = map(aw_sunday, function(x) x + lubridate::days(1:40))) %>% #Find all series of 40 days after each sunday
unnest %>%
mutate(week_day = lubridate::wday(extra_days, label = TRUE)) %>% #Find all the day names
filter(week_day == 'Fri') %>% # Filter out the fridays
pull(extra_days)
projection
...交替
Document profile = collection.find(new Document("_id", 10)).first();
您发现import static com.mongodb.client.model.Filters.eq;
// other code removed
Document profile = collection.find(eq("_id", 10)).first();
会直接返回FindIterable
,而不是一个或多个find
个对象。这起初很烦人,但非常强大和有用。
要在多个条件下过滤我的工作:
Document