1、简单

@Test
public void add() throws Exception {
final Employee em = new Employee("遥远2",50000.0);
Key<Employee> key = datastore.save(em);
Console.log("主键id={},{}",key.getId(),em.getId()); }

存储:

{
"_id" : ObjectId("5bced166dd00712bd429363e"),
"className" : "com.ebc.entity.Employee",
"name" : "遥远2",
"wage" : 50000
}

2、添加子集合

@Test
public void add2() throws Exception {
Employee em = new Employee("zuoys",10000.0); final Employee e1 = new Employee("小弟1",2000.0);
datastore.save(e1);
final Employee e2 = new Employee("小弟2",3000.0);
datastore.save(e2);
//集合中的元素必须先保存
List<Employee> emList = CollUtil.newArrayList();
emList.add(e1);
emList.add(e2);
em.setDirectReports(emList); datastore.save(em);
Console.log("主键id={}",em.getId());
}

存储:

/* 1 */
{
"_id" : ObjectId("5bcef23890c1d9280c07128e"),
"className" : "com.ebc.entity.Employee",
"name" : "小弟1",
"wage" : 2000
} /* 2 */
{
"_id" : ObjectId("5bcef23890c1d9280c07128f"),
"className" : "com.ebc.entity.Employee",
"name" : "小弟2",
"wage" : 3000
} /* 3 */
{
"_id" : ObjectId("5bcef23890c1d9280c071290"),
"className" : "com.ebc.entity.Employee",
"name" : "zuoys",
"directReports" : [
{
"$ref" : "employees",
"$id" : ObjectId("5bcef23890c1d9280c07128e")
},
{
"$ref" : "employees",
"$id" : ObjectId("5bcef23890c1d9280c07128f")
}
],
"wage" : 10000
}

3、添加父

@Test
public void add3() throws Exception {
Employee em = datastore.get(Employee.class, new ObjectId("5bcef23890c1d9280c071290"));
final Employee e3 = new Employee("小弟3有父",22.0);
e3.setManager(em);
Key<Employee> key = datastore.save(e3);
Console.log("主键id={}",key.getId());
}

存储:

/* 4 */
{
"_id" : ObjectId("5bcef45d90c1d91d509941cd"),
"className" : "com.ebc.entity.Employee",
"name" : "小弟3有父",
"manager" : {
"$ref" : "employees",
"$id" : ObjectId("5bcef23890c1d9280c071290")
},
"wage" : 22
}

morphia(2)-添加的更多相关文章

  1. NoSQL 之 Morphia 操作 MongoDB

    上两篇文章:http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html http://www.cnblogs.com/hoojo/arch ...

  2. MongoDB的ORM框架——Morphia

    1.引入pom <dependency> <groupId>org.mongodb.morphia</groupId> <artifactId>morp ...

  3. Mongodb 的ORM框架 Morphia之注解

    @Entity("bands") public class Band { @Id ObjectId id; String name; String genre; @Referenc ...

  4. mongodb使用实践---mongodb+mongo-java-driver+morphia

    package com.lolaage.dals.dbfactory.mongodb; import java.net.UnknownHostException; import java.util.A ...

  5. 使用morphia实现对mongodb的聚合查询

    morphia是谷歌的一个针对mongodb的数据化持久框架: 关于mongodb的介绍不在这里展示,直接进入主题:采用morphia实现对mongodb的聚合查询 这里获取所有学生的分数总和 spr ...

  6. Spring boot配置MongoDB以及Morphia踩坑记录

    pom 因为项目中采用Morphia(MongoDB的ODM框架,对象-文档映射(object-document mapper)),因此需要在pom文件中引入相应依赖: <dependency& ...

  7. .Net Core MVC 网站开发(Ninesky) 2.4、添加栏目与异步方法

    在2.3中完成依赖注入后,这次主要实现栏目的添加功能.按照前面思路栏目有三种类型,常规栏目即可以添加子栏目也可以选择是否添加内容,内容又可以分文章或其他类型,所以还要添加一个模块功能.这次主要实现栏目 ...

  8. C#给PDF文档添加文本和图片页眉

    页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码.日期.公司徽标.文档标题.文件名或作者名等等.那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件 ...

  9. html中如何添加提示信息

    提示:在标签中添加title属性 1.文本中如何添加提示信息? 1.1直接在标签中加title="值": 例如:<p title="爱笑,爱哭,爱生活"& ...

随机推荐

  1. node.js 开发博客系统

    1. 安装yoman :npm install -g yo 2. 安装 generator-express :npm install -g generator-express 3. 安装 bower ...

  2. codeforces 460C. Present 解题报告

    题目链接:http://codeforces.com/submissions/ywindysai 题目意思:有 n 朵花,每朵花都有一定的高度(第 i 朵花对应 ai),m 天之后要把这些花送给别人. ...

  3. mongodb给我们提供了fsync+lock机制把数据暴力的刷到硬盘上

    能不能把数据暴力的刷到硬盘上,当然是可以的,mongodb给我们提供了fsync+lock机制就能满足我们提的需求. fsync+lock首先会把缓冲区数据暴力刷入硬盘,然后给数据库一个写入锁,其他实 ...

  4. datagrid 行号问题综合

    1.datagrid 左侧行号设置宽度 : 到 easyui.css 中修改 .datagrid-cell-rownumber 中 width 的宽度.

  5. 【C】貌似不友好的scanf()

    scanf语句执行过程: (1)逆序取参数的偏移地址并分别入栈. (2)根据控制字符串的格式说明符从缓冲区取数据给各变量赋值. ①若格式说明符是数值类数据:如果从缓冲区中拿出的第一个字符可以合法表示该 ...

  6. vmware 克隆linux虚拟机后的网卡修改方法

    VMware虚拟机安装好CentOS6.5系统后,纯净的系统多克隆几份出来方便后期做试验.克隆步骤很简单,克隆后出现的问题是克隆后的网卡MAC地址和原系统MAC地址一样,在局域网内会有冲突,需要更改克 ...

  7. Quicklz压缩算法

    以前对压缩算法一无所知,只是知道哈弗曼编码能做这种事情,但是感觉这样的方法奇慢无比.昨天下午看了下号称世界上最快的压缩算法Quicklz,对压缩的基本思路有了一定的了解.一般的压缩程序的要求读入文件之 ...

  8. xen添加网卡

    brctl addbr xenbr0 ifconfig xenbr0 up ifconfig xenbr0 192.168.0.1 /etc/xen/scripts/network-bridge st ...

  9. ARM、DSP、FPGA的技术特点和区别

    在嵌入式开发领域,ARM是一款非常受欢迎的微处理器,其市场覆盖率极高,DSP和FPGA则是作为嵌入式开发的协处理器,协助微处理器更好的实现产品功能. 那三者的技术特点以及区别是什么呢?下文就此问题略做 ...

  10. Adventure Works 教程

    多维建模(Adventure Works 教程)     欢迎使用 Analysis Services 教程. 本教程通过在所有示例中使用虚构公司 Adventure Works Cycles,说明如 ...