java mongo查询,在只知道父元素时获取子元素
编辑
我想在只有父元素已知的情况下找到children元素。 我不能用equest(我用的是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;
}
# 1 楼答案
您的java类与结构不同
根据结构:集合名称“child”不应是where条件的一部分,请使用:
基于Java代码:
有关更多详细信息,请参见参考文档中的示例:
http://docs.spring.io/spring-data/data-mongodb/docs/current/reference/htmlsingle/#mongodb-getting-started
但你真的把整个父母都储存在每个孩子身上吗?这绝对不是在文档数据库中建模数据的正确方法。你应该做的是
或者使用DBRef,但前提是你有充分的理由