gpt4 book ai didi

java - 如何从java集合中的java对象访问变量?

转载 作者:行者123 更新时间:2023-12-02 11:52:25 24 4
gpt4 key购买 nike

我正在使用 Mongo Java 驱动程序,并且我尝试在 collection.find() 函数上使用过滤器。例如,当我有一个 java 对象的键时,它的类包含某些字段:

Document document = (Document) collection.find(and(
eq("m_seniority", key.getM_seniority()),
eq("m_currency",key.getM_currency()),
eq("m_redCode",key.getM_redCode()),
eq("m_companyId",key.getM_companyId())
)).first();

我使用上面的命令。但是当我想批量执行此操作时,我将传递一个键集合(Collection keys),我无法访问内部java对象的特定变量,如下所示:

List<Document> docs =  (List<Document>) collection.find(and(
eq("m_seniority", keys.getM_seniority()),
eq("m_currency",keys.getM_currency()),
eq("m_redCode",keys.getM_redCode()),
eq("m_companyId",keys.getM_companyId())
)).into(new ArrayList<Document>());

因为 getter 不是集合的,而只是对象的,所以我不能在集合上使用 getter。我该怎么做?

最佳答案

要对所有集合键创建查询:

List<Bson> keyFilters = new ArrayList<>();
// for each key create an 'and' filter on seniority, currency, redcode and companyid
for (Key key : keys) {
keyFilters.add(
Filters.and(eq("m_seniority", key.getM_seniority()),
Filters.eq("m_currency",key.getM_currency()),
Filters.eq("m_redCode",key.getM_redCode()),
Filters.eq("m_companyId",key.getM_companyId())
)
);
}

List<Document> docs = (List<Document>) collection.find(
// 'or' all of the individual key filters
Filters.or(keyFilters)
).into(new ArrayList<Document>());

关于java - 如何从java集合中的java对象访问变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47791841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com