我正在查询我的' schede'集合,其文档如下所示:
{
"_id" : ObjectId("5499f0f74b9037f6efcb4e00"),
"className" : "it.trew.omg.model.SchedaLavoro",
"dataInserimento" : ISODate("2014-12-23T22:47:19.664Z"),
"dataAggiornamento" : ISODate("2014-12-23T22:54:27.426Z"),
"titolo" : "prima",
"descrizione" : "my project",
"dataInizio" : ISODate("2014-11-30T23:00:00Z"),
"dataFine" : ISODate("2014-12-02T23:00:00Z"),
"aperta" : true,
"cliente" : DBRef("soggetti", ObjectId("5495d48c4b909c169ce5d33e"))
}
" cliente"引用来自" soggetti"系列:
{
"_id" : ObjectId("549889a24b90f32e51dc2e0c"),
"className" : "it.trew.omg.model.Soggetto",
"dataInserimento" : ISODate("2014-12-22T21:14:10.850Z"),
"dataAggiornamento" : ISODate("2014-12-22T21:14:10.850Z"),
"ragioneSociale" : "Stefania"
}
在我的实体代码中(SchedaLavoro对应于' schede'集合),它是:@Reference Soggetto cliente;
现在我的搜索查询就是这样:
public List<SchedaLavoro> findByQuery( String queryTerm ) {
Query<SchedaLavoro> query = createQuery();
if ( !queryTerm.isEmpty() ) {
query.or(
query.criteria("titolo").containsIgnoreCase(queryTerm),
query.criteria("descrizione").containsIgnoreCase(queryTerm)
);
}
query.order( "-aperta, -dataInserimento");
return query.asList();
}
我想将此添加到我的&#34;或&#34;标准清单:
query.criteria("cliente.ragioneSociale").containsIgnoreCase(queryTerm)
但是我收到了这个错误:
不能使用过去的点符号&#39; cliente&#39;无法找到 &#39; it.trew.omg.model.SchedaLavoro&#39;在验证时 - cliente.ragioneSociale
如何查询引用的子文档的字段?
答案 0 :(得分:1)
@Reference
文档不是子文档。你无法像这样查询它们。您尝试做的是加入,而mongodb并不支持。你必须做两个不同的询问。