我正在创建springboot项目并使用mongodb作为数据库。现在我有2个收藏夹
用户集合
@Data
@Document(collection = "user")
public class User {
@Id
private int user_id;
private String user_name;
private int product_id
}
用户集中的文档
[
{
"user_id": 0,
"user_name": "bob",
"product_id: 001
}
]
产品系列
@Data
@Document(collection = "product")
public class Product {
@Id
private int product_id;
private String product_name;
private double price;
}
产品集中的文档
[
{
"product_id": 001,
"product_name": "Coconut",
"price": 20.00
}
]
这是我想要的结果,当我在用户集合中使用“ GET”方法
[
{
"user_id": 0,
"user_name": "bob",
"product: [
{
"product_id": 001,
"product_name": "Coconut",
"price": 20.00
}
],
}
]
或者任何可以获得“ Product_id” = 001的Product的所有值的结果
PS:插入数据时。按表插入数据。 product_id是字符串(“ product_id”:001)不是对象(“ product_id”:[...])
PS:我的英语不好,如果您有任何疑问可以问更多
答案 0 :(得分:0)
如果您想要这样的JSON响应:
[
{
"user_id": 0,
"user_name": "bob",
"product: [
{
"product_id": 001,
"product_name": "Coconut",
"price": 20.00
}
], <---- not comma here
}
]
您应该相应地更改类的结构;
用户类别
@Data
@Document(collection = "user")
public class User {
@Id
private int user_id;
private String user_name;
private List<Product> product;
}
产品类别
@Data
@Document(collection = "product")
public class Product {
@Id
private int product_id;
private String product_name;
private double price;
}
您可能正在使用Jackson库,它会根据需要立即自动序列化。
答案 1 :(得分:0)
其中一种方法是使用@DBRef:
@Data
@Document(collection = "user")
public class User {
@Id
private String id;
private String username;
@JsonProperty("products")
@DBRef
private List<Product> productList;
}
@Data
@Document(collection = "product")
public class Product {
@Id
private String id;
private String productName;
private double price;
}
此处是展示如何正确使用它的文章https://www.baeldung.com/cascading-with-dbref-and-lifecycle-events-in-spring-data-mongodb