我对Java很新。我对mongoDB非常陌生。使用morphia在mongodb中的对象列表内搜索
我有一个集合,它看起来是这样的:
{
"_id" : "1234",
"name" : "bill",
"products" : [
{
"fooType" : "bar",
.....
},
{
"fooType" : "oof",
.....
}
],
"status" : "Truncated"
},
{...}
我想实现一个搜索功能通过fooType进行搜索。我能够使用标准mongodb语法创建工作查询,但无法弄清楚如何使用morphia实现。
一个工作的MongoDB查询:
db.Clients.find({products: {$elemMatch: {fooType: "bar"}}})
,我已经没有任何成功尝试了一些(截)代码:
DatastoreImpl ds;
q = ds.createQuery(Clients.class).field("products").hasThisElement("fooType");
显然,这并不工作,因为它期望的对象。我似乎无法围绕如何使用hasThisElement,我甚至不确定这是否是最好的方式去解决这个问题。
你试过'ds.createQuery(Clients.class).field(“products.fooType”)。hasThisElement(“bar”)'? –
同样的错误:'无效参数:预计一个对象($ elemMatch)' –