gpt4 book ai didi

java - 使用吗啡按字符串列表上的元素查询 MongoDB

转载 作者:行者123 更新时间:2023-12-01 11:21:33 25 4
gpt4 key购买 nike

这是文档格式:

{
"_id" : ObjectId("123")
"types" : [ "PHONE", "ADDRESS" ]
},
{
"_id" : ObjectId("345")
"types" : [ "PHONE" ]
},
{
"_id" : ObjectId("567")
"types" : [ "PHONE", "NAME" ]
}

这是查找包含某些类型的元素的查询:

public List<MyCollection> findByType(Type type) {
return getDatastore().createQuery(MyCollection.class)
.field("types").hasThisElement(type.toString())
.asList();
}

使用此代码,我收到此错误:

com.mongodb.MongoException: Can't canonicalize query: BadValue $elemMatch needs an Object

我尝试使用hasThisOne方法,但总是返回一个空数组。

我该如何执行此查询?

最佳答案

你为什么使用 type.toString()

我假设你有一个 List<Type> types在您的实体中,对吗?那么查询也应该使用枚举而不是它的字符串表示形式。

你也许可以使用:

getDatastore().createQuery(MyCollection.class)
.field("types").equal(type).asList();

是的,即使对于数组也是如此。

关于java - 使用吗啡按字符串列表上的元素查询 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31169079/

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