List<DBObject> listObj = new ArrayList<DBObject>();
DBCollection coll_A = CrawlerMongoDBManager.getCollection(Constant.DB_CONN_PRODUCT);
DBCollection coll_B = MatchMongodbManger.getCollection(
Constant.MONGODB_ITEM);
for (ItemVO itemVO : listvos) {
List<DBRef> listRef = new ArrayList<DBRef>();
List<DBObject> websiteList = new ArrayList<DBObject>();
String createTime = itemVO.getCreateTime();
String websiteId = itemVO.getWebsiteId();
String catalogId = itemVO.getCatalogId();
DBObject item = new BasicDBObject();
item.put("catalogId", catalogId);
item.put("websiteId", websiteId);
item.put("itemSku", itemVO.getItemId());
BasicDBObject keys = new BasicDBObject();
keys.put("_id", 1);
DBObject dbObject = coll.findOne(item,keys);
String pId = dbObject.get("_id") != null ? dbObject.get("_id")
.toString() : "";
DBRef refB = new DBRef(new BMongodbManger().getDB(),
Constant.MONGODB_BRAND, new ObjectId(itemVO
.getBrandId()));
DBRef refP = new DBRef(new AMongoDBManager().getDB(),
Constant.DB_CONN_PRODUCT, new ObjectId(pId));
listRef.add(refP);
DBObject websiteObj = new BasicDBObject();
websiteObj.put("websiteId", websiteId);
websiteList.add(websiteObj);
DBObject subObj = new BasicDBObject();
subObj.put("brand", refB);
subObj.put("catalogId", catalogId);
subObj.put("createTime", createTime);
subObj.put("productList", listRef);
subObj.put("websiteList", websiteList);
listObj.add(subObj);
}
coll_match.insert(listObj);
上面为mongodb多表关联的java代码部分实现。主要是红色部分代码。
分享到:
相关推荐
在Java开发中,MongoDB 提供了丰富的Java驱动程序,使得与Java应用程序的集成变得简单。本篇文章将深入探讨MongoDB支持的Java数据类型以及相关的测试例子。 1. **ObjectId**: MongoDB 使用ObjectId作为文档的默认...
`@MongoDBRef`注解用于处理引用其他文档的关系,而`@DBRef`则用于处理MongoDB的DBRef。`@Field`用于指定文档中的字段映射。 7. **聚合框架**: Spring Data MongoDB提供了聚合操作的支持,允许开发者构建复杂的...
这个压缩包“基于mongodb官方Java驱动的orm框架,允许子类嵌套.zip”显然是一个ORM(对象关系映射)框架,旨在简化Java应用与MongoDB之间的数据操作,特别是支持子类的嵌套结构。 ORM框架允许开发者用面向对象的...
Spring Data为MongoDB提供了一个强大的抽象层,使得开发者可以轻松地在Java应用中集成和操作MongoDB。 Spring Data MongoDB的核心概念是Repository抽象,它允许开发者定义自定义的查询方法,而无需编写SQL或MongoDB...
1037.5 数据库引用 1047.5.1 什么是DBRef 1047.5.2 示例模式 1047.5.3 驱动对DBRef的支持 1057.5.4 什么时候该使用DBRef呢 106第8章 管理 1078.1 启动和停止MongoDB 1078.1.1 从命令行启动 1078.1.2...
14110.5.2 多个mongos 14110.5.3 健壮的片 14110.5.4 物理服务器 14210.6 管理分片 14210.6.1 配置集合 14210.6.2 分片命令 143第11 章 应用举例 14511.1 化学品搜索引擎:Java 14511.2 新闻聚合器...
例如,使用`@Document`注解标记一个MongoDB实体类,`@Id`注解标识主键,`@DBRef`用于处理引用关系。 **2. 配置MongoDB** 在Spring应用中配置MongoDB通常涉及以下几个步骤: - 添加MongoDB和Spring Data MongoDB的...
bookstore-mongodb-sample ...该项目使用@CascadeSave批注与@DBRef批注一起保存值,以使用单个给定的存储库保存实体。 使用gradlew bootRun执行应用程序 使用mongochef或mongo命令行查看保存的实体
Spring Data MongoDB 是一个Java库,它是Spring Data框架的一部分,专门用于简化与...了解并熟练掌握Spring Data MongoDB,对于开发基于Java和MongoDB的应用程序至关重要,它可以帮助你构建高效、可维护的数据访问层。
通过学习和实践这个项目,你将掌握如何在Java应用中集成Spring Data MongoDB,理解如何定义数据模型,使用Repository接口,以及处理对象间的引用关系。这将帮助你更高效地开发基于MongoDB的应用程序。
在现代软件开发中,SpringBoot以其简洁的配置、快速的开发体验以及强大的生态系统,成为了Java开发者首选的框架之一。而MongoDB作为NoSQL数据库的代表,以其非关系型、分布式、高性能的特点,广泛应用于大数据、实时...
总的来说,MongoSpring项目是Java开发者使用MongoDB的利器,它结合了Spring的强大功能和MongoDB的灵活性,使得在Java环境下开发MongoDB应用变得更加容易。通过学习和掌握MongoSpring,开发者可以更好地理解和实践...
Spring Boot通过Spring Data MongoDB模块提供与MongoDB的集成,使得在Java应用中操作MongoDB变得非常简单。 1. **配置MongoDB**: 在Spring Boot应用中,我们通常在`application.properties`或`application.yml`中...
2. **实体类**:Java类,代表MongoDB中的文档结构,通常会使用`@Document`注解标识,并可能使用`@Id`注解定义主键,以及`@DBRef`注解处理与其他实体的一对多关系。 3. **Repository接口**:这些接口继承自Spring ...
MongoDB 是一个流行的开源文档型数据库,以其灵活性和高性能而受到开发者欢迎。在MongoDB中,数据以JSON格式存储,支持复杂查询操作。...了解并熟练运用这些技巧,将有助于提升MongoDB应用的开发效率和数据管理能力。
因此,当我们尝试保存一个包含`@DBRef`字段的实体时,MongoDB只会保存ID,而不会保存完整的引用实体。 为了解决这个问题,Spring Data MongoDB提供了一系列的生命周期事件,如`onBeforeConvert`, `onBeforeSave`, `...
这些驱动程序允许开发者从各自的应用程序中与MongoDB进行交互。 9. **操作系统支持**:MongoDB支持在多种操作系统上运行,包括Linux、Mac OS X、Windows和Solaris,这说明了其良好的跨平台兼容性。 10. **sharding...
在开发应用程序时,刚开始时通常需要一些数据,将其放入应用程序中始终是一个问题,是否应该使用域模型以编程方式创建所有记录,是否应该将数据直接转储到数据库中? 下面的演示通过使用Jackson2...