已编辑
我想在只知道父元素时找到children元素。 我无法进行征服(我正在使用mongodb) 结构如下:
collection: parent2
parent1
id: idParent1 name : parentName1 //no ref to the children elements
parent2
id: idParent2 name : parentName2 //no ref to the children elements
parent3
id: idParent3 name : parentName3 //no ref to the children elements
collection: children
child1
id: idChild1 refParent: parent1
id: idChild2 refParent: parent2
id: idChild3 refParent: parent3
id: idChild4 refParent: parent3
id: idChild5 refParent: parent1
请求类似于
Query query = new Query();
query.addCriteria(Criteria.where("child.refParent").is("parent1")); //not working
return mongoTemplate.find(query, Chidren.class);
我用来创建集合的java类是:
public Parent{
String id;
String name;
}
public Child {
String id;
String name;
Parent parent;
}
答案 0 :(得分:0)
您的java类与结构不同。
基于结构:集合名称" child"不应该是where标准的一部分,使用:
query.addCriteria(Criteria.where("refParent").is("parent1"));
基于Java代码:
query.addCriteria(Criteria.where("parent.id").is("parent1"));
有关详细信息,请参阅参考文档中的示例:
但是你真的把整个父母存放在每个孩子身上吗?这绝对不是在文档数据库中建模数据的正确方法。你应该拥有的是
public Child {
String id;
String name;
String parentId;
}
或使用DBRef,但前提是你有充分的理由。