Tom*_*wad 0 spring mongodb spring-data spring-data-mongodb
我可以有一个可为空的字段吗?-如果其值为null,则不会在文档中存储该字段(名称或值);以及-如果其值为非null,则将字段名称和值存储在它。
是的,可以,只是在创建模型时不设置属性,并且该字段和值不会插入mongodb文档中。为其设置了值的字段,只有那些字段将存储在mongodb文档中。
package org.scalar.test;
import org.scalar.model.Product;
import org.scalar.model.Summary;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.data.mongodb.core.MongoTemplate;
public class App {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("spring/applicationContext.xml");
for (int i=0;i<10;i++) {
Product product = new Product();
product.setId(String.valueOf(i));
/*Summary summary = new Summary(); */
MongoTemplate template = (MongoTemplate)context.getBean("mongoTemplate");
template.save(product);
}
System.out.println("end");
((ClassPathXmlApplicationContext)context).close();
}
}
Run Code Online (Sandbox Code Playgroud)
产品.java
package org.scalar.model;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection="products")
public class Product {
@Id
public String id;
public Summary summary;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Summary getSummary() {
return summary;
}
public void setSummary(Summary summary) {
this.summary = summary;
}
}
Run Code Online (Sandbox Code Playgroud)
Mongodb的输出
> db.products.find();
{ "_id" : "0", "_class" : "org.scalar.model.Product" }
{ "_id" : "1", "_class" : "org.scalar.model.Product" }
{ "_id" : "2", "_class" : "org.scalar.model.Product" }
{ "_id" : "3", "_class" : "org.scalar.model.Product" }
{ "_id" : "4", "_class" : "org.scalar.model.Product" }
{ "_id" : "5", "_class" : "org.scalar.model.Product" }
{ "_id" : "6", "_class" : "org.scalar.model.Product" }
{ "_id" : "7", "_class" : "org.scalar.model.Product" }
{ "_id" : "8", "_class" : "org.scalar.model.Product" }
{ "_id" : "9", "_class" : "org.scalar.model.Product" }
Run Code Online (Sandbox Code Playgroud)
高温超导
| 归档时间: |
|
| 查看次数: |
1619 次 |
| 最近记录: |