Java 如何在mongodb Spring Boot中持久化嵌套文档?
我想用这样的json格式在MongoDb中保存一个文档Java 如何在mongodb Spring Boot中持久化嵌套文档?,java,mongodb,spring-boot,spring-data-mongodb,Java,Mongodb,Spring Boot,Spring Data Mongodb,我想用这样的json格式在MongoDb中保存一个文档 { "userId": "5b89411a161aef03a2ac6847", "stocks": [ { "symbol": "aapl", "company": "Apple Inc", "group": [ { "quantity": 110,
{
"userId": "5b89411a161aef03a2ac6847",
"stocks": [
{
"symbol": "aapl",
"company": "Apple Inc",
"group": [
{
"quantity": 110,
"date": "2018-09-02 14:33:51",
"price": "215.00",
"type": "SEC"
}
]
}
]
}
public interface UserBuyingRepository extends MongoRepository<BoughtStocks, String>{
BoughtStocks findByUserId(String userId);
}
我有这样的mongoRepository设置
{
"userId": "5b89411a161aef03a2ac6847",
"stocks": [
{
"symbol": "aapl",
"company": "Apple Inc",
"group": [
{
"quantity": 110,
"date": "2018-09-02 14:33:51",
"price": "215.00",
"type": "SEC"
}
]
}
]
}
public interface UserBuyingRepository extends MongoRepository<BoughtStocks, String>{
BoughtStocks findByUserId(String userId);
}
我的模特是这样的
{
"userId": "5b89411a161aef03a2ac6847",
"stocks": [
{
"symbol": "aapl",
"company": "Apple Inc",
"group": [
{
"quantity": 110,
"date": "2018-09-02 14:33:51",
"price": "215.00",
"type": "SEC"
}
]
}
]
}
public interface UserBuyingRepository extends MongoRepository<BoughtStocks, String>{
BoughtStocks findByUserId(String userId);
}
BoughtStocks.java
public class BoughtStocks {
@Id
private String userId;
private List<Stock> stocks = null;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public List<Stock> getStocks() {
return stocks;
}
public void setStocks(List<Stock> stocks) {
this.stocks = stocks;
}
}
我在这里遗漏了一个基本概念。我试过用这个
@Query(value = "{'userId':'?0','stocks.symbol':'?1'}",fields = "{'stocks.symbol':'?1'}")
List<Stock> findByStockSymbol(String userId,String symbol);
@Query(value=“{'userId':'?0','stocks.symbol':'?1'}”,fields=“{'stocks.symbol':'?1'}”)
列出findByStockSymbol(字符串用户ID、字符串符号);
但它会将用户购买的所有股票返回给我,所以我必须循环查看每一种股票,我认为这不是最佳做法。任何帮助都将不胜感激。感谢您拥有一份文档,这样您就更难实现一致性。以@DBRef链接的单独文档为目标,类似于JPA中的@ManyToOne。谢谢您的帮助!