文档章节

mongo多态保存

go4it
 go4it
发布于 2016/10/06 19:41
字数 258
阅读 16
收藏 0
点赞 0
评论 0

##Org

public class Org {

    @Id
    private String id;

    private String name;

    private Set<Employee> employees;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Set<Employee> getEmployees() {
        return employees;
    }

    public void setEmployees(Set<Employee> employees) {
        this.employees = employees;
    }
}

##employee

public abstract class Employee {

    protected String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

##leader

public class Leader extends Employee{

    private String address;

    private String title;

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
}

##worker

public class Worker extends Employee{

    private String mobile;

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
}

##保存实例

@Test
	public void testPolymorphic() {
		Org org = new Org();
		org.setName("tech");

		Leader leader = new Leader();
		leader.setName("leader");
		leader.setAddress("fj");
		leader.setTitle("vp");

		Worker worker = new Worker();
		worker.setName("worker");
		worker.setMobile("15909898989");

		Set<Employee> employees = new HashSet<>();
		employees.add(leader);
		employees.add(worker);

		org.setEmployees(employees);
		orgDao.save(org);
	}

##mongo里的数据保存了class

{
    "_id" : ObjectId("57f635e0af7b3807e8101884"),
    "_class" : "com.patterncat.demo.model.Org",
    "name" : "tech",
    "employees" : [ 
        {
            "mobile" : "15909898989",
            "name" : "worker",
            "_class" : "com.patterncat.demo.model.Worker"
        }, 
        {
            "address" : "fj",
            "title" : "vp",
            "name" : "leader",
            "_class" : "com.patterncat.demo.model.Leader"
        }
    ]
}

##取数据

@Test
	public void testFind(){
		Org org = orgDao.findOne("57f635e0af7b3807e8101884");
		Set<Employee> employees = org.getEmployees();
		for(Employee emp : employees){
			if(emp instanceof Leader){
				System.out.println(emp);
			}else if(emp instanceof Worker){
				System.out.println(emp);
			}
		}
	}

##docs

© 著作权归作者所有

共有 人打赏支持
go4it
粉丝 50
博文 644
码字总数 435791
作品 0
深圳
php操作mongo语法

MongoDB不支持多表查询 1、运行mongo服务 打开cmd,输入E:进入E盘。 输入cd E:mongdbbin 进入该目录下。 输入mongod --dbpath E:mongodbdata //开启mongo服务,并将数据信息保存在data文件夹...

错II过 ⋅ 2014/07/10 ⋅ 0

mongo主库地址变更,从库修改数据源IP

杀mongo进程时请不要kill -9!!!你可以多kill几次 ,或kill -2 同步时间:/usr/sbin/ntpdate pool.ntp.org 1. 切换到mongo用户,修改配置文件, 注释 #slave=true #source= 旧IPx.x.x.x:270...

beck_716 ⋅ 2016/11/24 ⋅ 0

MongoDB安装指南

不知道为什么别人很简单就能装上,我却遇到了好多问题。只好把“辛辛苦苦”弄好的mongodb的安装过程详细写一遍留着以后用。 一、下载MongoDB 先去http://www.mongodb.org/downloads下载对应M...

Claire_level ⋅ 2012/05/23 ⋅ 1

Python搭建BT资源搜索站

通过前面四篇文章,我们已经采集到了N多BT种子,并且已经将种子中包含的一些信息保存在Mongo数据库中,接下来就是如何将Mongo中的数据通过WEB服务器提供给搜索引擎,提供给一些浏览者。即,如...

mickelfeng ⋅ 01/12 ⋅ 0

OC学习笔记十二 多态

一.多态概念 多态的前提,必须存在继承关系,在代码中的表现形式就是父类类型保存子类类型,即父类的指针指向子类对象。 二.多态特性 在OC中,调用方法是,会检测对象的真实类型,称为动态绑...

卧龙小 ⋅ 2014/10/16 ⋅ 0

利用scrapy 爬取OSChina全站URL

以 oschina 为例: 生成项目 配置 编辑 settings.py, 加入以下(主要是User-agent和piplines): 编辑 items.py, 内容如下: 编辑 pipelines.py, 内容如下: 生成模板spider然后修改: 编辑 spider...

巴鲁 ⋅ 2016/06/15 ⋅ 0

Laravel Eloquent Orm 使用指南

1、描述1vs1关系 例如比如又两张表,一张用户表,一张手机表,一个用户只有一个手机,一个手机也只属于一个人,就表达了一对一的关系 class User extends Eloquent { //一对一 public funct...

tree2013 ⋅ 2016/03/26 ⋅ 0

scrapy 爬取全站URL

以 oschina 为例: 生成项目 配置 编辑 settings.py, 加入以下(主要是User-agent和piplines): 编辑 items.py, 内容如下: 编辑 pipelines.py, 内容如下: 生成模板spider然后修改: 编辑 spider...

好铁 ⋅ 2016/04/14 ⋅ 2

php中mongoDB数据库扩展函数

1:首先需要去安装对应版本的mongoDB php扩展dll文件,开扩展,重启apache 这个可以去php官网找找,可以去php手册看看mongoDB函数,里面安装和函数使用的介绍, 2: Mongo 配置选项 名字 默认...

durban ⋅ 2012/06/03 ⋅ 0

在 Asp.Net MVC3 下体验 MongoDB

先让MongoDB在Win7 64下跑起来: 1. MongoDB主页 http://www.mongodb.org/ 2. 下载 http://downloads.mongodb.org/win32/mongodb-win32-x8664-1.8.1.zip 3. 解压 e.g. H:mongodb-win32-x86_6......

鉴客 ⋅ 2011/09/06 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

R计算IV

参考文章 #读取文件 rawdata = read.csv("/path/to/csv/file",header=T) colnames(rawdata)[18] <- "y" //重命名因变量y #数据分区 训练集测试集 trainIdx <- sample(nrow(rawdata), round(......

火力全開 ⋅ 13分钟前 ⋅ 0

SQL老司机,在SQL中计算 array & map & json数据

摘要: 场景 通常,我们处理数据,一列数据类型要么是字符串,要么是数字,这些都是primitive类型的数据。 场景 通常,我们处理数据,一列数据类型要么是字符串,要么是数字,这些都是primi...

阿里云云栖社区 ⋅ 13分钟前 ⋅ 0

SQL老司机,在SQL中计算 array & map & json数据

摘要: 场景 通常,我们处理数据,一列数据类型要么是字符串,要么是数字,这些都是primitive类型的数据。 场景 通常,我们处理数据,一列数据类型要么是字符串,要么是数字,这些都是primi...

猫耳m ⋅ 24分钟前 ⋅ 0

关于ireport自定义变量类型为list的时候

自己摸石头过河,我真的应该去趟市中心图书馆,借本真正靠谱的教材 网上的东西,只有0.01%是有用的,还有0.99%是垃圾,剩下的99%是垃圾的复制品。。 哎!~ 问题是这样的,报表带sql,从db中获...

炑炑milina ⋅ 25分钟前 ⋅ 0

Spring mvc ContextLoaderListener 原理解析

对于熟悉Spring MVC功能,首先应从web.xml 开始,在web.xml 文件中我们需要配置一个监听器 ContextLoaderListener,如下。 <!-- 加载spring上下文信息,最主要的功能是解析applicationContex...

轨迹_ ⋅ 25分钟前 ⋅ 0

阿里云发布企业数字化及上云外包平台服务:阿里云众包平台

摘要: 阿里云正式发布旗下众包平台业务(网址:https://zhongbao.aliyun.com/),支持包括:网站定制开发,APP、电商系统等软件开发,商标、商品LOGO、VI、产品包装设计、营销推广、大数据人...

阿里云官方博客 ⋅ 27分钟前 ⋅ 0

Redis安装异常解决办法

官网地址:http://redis.io/ 官网下载地址:http://redis.io/download 1. 下载Redis源码(tar.gz),并上传到Linux 2. 解压缩包:tar zxvf redis-2.8.17.tar.gz 3. 进入解压缩后的文件夹:c...

slagga ⋅ 31分钟前 ⋅ 0

006. 深入JVM学习—年轻代

1. 年轻代图片 年轻代(Young)属于JVM堆内存空间的一个组成部分 所有使用关键字new新实例化的对象一定会在伊甸园区进行保存,而对于存活区保存的一定是已经在伊甸园区存在一段时间并且经过了...

影狼 ⋅ 32分钟前 ⋅ 0

如何成为一个合格的程序员

偶尔的,我会被人问道:如何成为一名优秀的程序员,更或者,如何成为一名程序员。每次人们问起,我都力图给出不同的答案。因此,我的答案是各种各样的。下面就是我认为的成为一名优秀的程序员...

柳猫 ⋅ 33分钟前 ⋅ 0

cups error_log日志暴增

日志内容 File \"/usr/lib/cups/notifier/dbus\" has insecure permissions 解决(未验证适用范围) sudo service cups stopsudo rm /etc/cups/subscriptions.conf*sudo rm -r /var/cac......

一介码夫_Hum ⋅ 37分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部