MongoDB框架Jongo的使用介绍


bson4jackson-2.3.1.jarjackson-annotations-2.4.1.jarjackson-core-2.4.1.1.jarjackson-databind-2.4.1.2.jarjongo-1.0.jarmongo-java-driver-2.12.2.jar
package com.jongo.enties;
public class PersonInfo {
private int id;
private String person_name;
private String sex;
private String relationship;
public PersonInfo() {
}
//getter and setter
@Override
public String toString() {
return "PersonInfo [id=" + id + ", person_name=" + person_name
+ ", sex=" + sex + ", relationship=" + relationship + "]";
}
}
package com.jongo.demo; import java.util.Iterator; import org.jongo.Jongo;
import org.jongo.MongoCollection; import com.jongo.enties.PersonInfo;
import com.mongodb.DB;
import com.mongodb.MongoClient; public class FirstDemo { public static void main(String[] args) { MongoClient mongo = null;
try {
mongo = new MongoClient("localhost",27017);
DB db = mongo.getDB("jongo");
Jongo jongo = new Jongo(db); MongoCollection person_info = jongo.getCollection("person_info"); @SuppressWarnings("unchecked")
Iterator<PersonInfo> all = (Iterator<PersonInfo>) person_info.find().as(PersonInfo.class);
while(all.hasNext()) {
PersonInfo personInfo = all.next();
System.out.println("all:"+personInfo);
} PersonInfo one = (PersonInfo) person_info.findOne("{id:1}").as(PersonInfo.class);
System.out.println("one:"+one); } catch(Exception e) {
e.printStackTrace();
} finally {
if(mongo != null) {
mongo.close();
}
}
}
}
> db.person_info.find()
{ "_id" : ObjectId("53cb8e8a2602b31118434306"), "id" : 2, "person_name" : "xiaohong", "sex" : "Male", "relationship" : "Friend" }
{ "_id" : ObjectId("53cb9015b963ac65727332a4"), "id" : 5, "person_name" : "Dark", "sex" : "Male", "relationship" : "ClassMate", "address" : { "regionI
d" : "0755", "provinceName" : "shenzhen" } } Iterator<PersonInfo> sort = (Iterator<PersonInfo>) person_info.find().sort("{id:1}").as(PersonInfo.class);//sort {field:1} 升序,{field:-1} 降序 Iterator<PersonInfo> skip = (Iterator<PersonInfo>) person_info.find().skip(1).as(PersonInfo.class);//查询时跳过多少条记录 Iterator<PersonInfo> limit = (Iterator<PersonInfo>) person_info.find().limit(2).as(PersonInfo.class);//查询指定数量的记录 Iterator<PersonInfo> hint = (Iterator<PersonInfo>) person_info.find().hint("{person_name:-1}").as(PersonInfo.class);//在查询过程中强制使用hint指定的索引方式,注意必须事先建立person_name字段的倒序索引。 long len = person_info.count("{id:5}");//查询满足条件的记录数
import static org.jongo.Oid.withOid;
PersonInfo personInfo= new PersonInfo(); // @ObjectId String _id PersonInfo类中需要定义一个名为_id的字段,且加上@ObjectId注解
person_info.save(personInfo);
person_info.find(withOid(personInfo._id)).as(PersonInfo .class); // instead of new ObjectId(personInfo._id)
PersonInfo personInfo = person_info.findOne("{id:#,person_name:#}",2,"xiaohong").as(PersonInfo.class); //相当于findOne("{id:2,person_name:'xiaohong'}")
PersonInfo personInfo2 = person_info.findOne("{address:#}",new Address("0755","shenzhen")).as(PersonInfo.class); //相当于 db.person_info.findOne({'address.regionId':'0755','address.privinceName':'shenzhen'});
Iterator<PersonInfo> ite = (Iterator<PersonInfo>) person_info.find("{id:{$in:#}}",ids).as(PersonInfo.class); //相当于db.person_info.find({id:{$in:[2,5]}});
PersonInfo personInfo1 =
person_info.findOne("{person_name:{$regex:#}}","Dar.*").as(PersonInfo.class); PersonInfo personInfo2 =
person_info.findOne("{person_name:{$regex:'Dar.*'}}").as(PersonInfo.class); PersonInfo personInfo3 =
person_info.findOne("{person_name:#}",Pattern.compile("Dar.*")).as(PersonInfo.class); Pattern p = Pattern.compile("Dar.*");
PersonInfo personInfo4 =
person_info.findOne("{person_name:{$regex:'"+p+"'}}").as(PersonInfo.class);
collection.aggregate("{$project:{sender:1}}")
.and("{$match:{tags:'read'}}")
.and("{$limit:10}")
.as(Email.class);




MongoDB框架Jongo的使用介绍的更多相关文章
- 基于Metronic的Bootstrap开发框架经验总结(8)--框架功能总体界面介绍
在前面介绍了一系列的<基于Metronic的Bootstrap开发框架经验总结>的随笔文章,随笔主要是介绍各个知识点的内容,对框架的总体性界面没有很好的阐述,本篇随笔主要介绍这个Boots ...
- xmpp整理笔记:xmppFramework框架的导入和介绍
一个将要开发xmpp的项目,建议在项目刚创建就导入框架,这样可以避免一些自己操作失误造成不必要的损失. xmpp中最常用的框架就是 xmppFrameWork 往期回顾: xmpp整理笔记:环境的快速 ...
- vue框架入门和ES6介绍
vue框架入门和ES6介绍 vue-mvvm模式,vue是一种轻量级的前端框架,主要为模板渲染,数据同步,组件化,模块化,路由等. https://cn.vuejs.org/ 源码:https://g ...
- SSM 框架集-01-详细介绍-入门问题篇
SSM 框架集-01-详细介绍-入门问题篇 刚开始了解 SSM,首先先解决几个基础问题 1.什么是 SSM 框架集? SSM(Spring+SpringMVC+MyBatis)框架集由 Spring. ...
- Python爬虫教程-32-Scrapy 爬虫框架项目 Settings.py 介绍
本篇介绍项目开发的过程中,对 Setting 文件的配置和使用 Python爬虫教程-32-Scrapy 爬虫框架项目 Settings.py 介绍 settings.py 文件的使用 想要详细查看 ...
- 带你手写基于 Spring 的可插拔式 RPC 框架(一)介绍
概述 首先这篇文章是要带大家来实现一个框架,听到框架大家可能会觉得非常高大上,其实这和我们平时写业务员代码没什么区别,但是框架是要给别人使用的,所以我们要换位思考,怎么才能让别人用着舒服,怎么样才能让 ...
- Django框架使用一 基本介绍,安装和建项篇
Django概述 Django 是在快节奏的编辑环境中开发的,设计使得常见 Web 开发任务快速且容易;它可以编写一个数据驱动的Web应用程序,简单的说就是不需要开发者操作数据库. 设计数据模型 尽管 ...
- Java Annotation认知(包括框架图、详细介绍、示例说明)
摘要 Java Annotation是JDK5.0引入的一种注释机制. 网上很多关于Java Annotation的文章,看得人眼花缭乱.Java Annotation本来很简单的,结果说的人没说清楚 ...
- MongoDB Auto-Sharding(自动分片)入门介绍
MongoDB是10gen团队开发的一款面向文档的NoSQL数据库.最近一年多以来,MongoDB被越来越多的大型网站应用到生产环境中,比较著名的有Foursquare, bit.ly, Source ...
随机推荐
- playframework 一步一步来 之 日志 (二)
带着之前的疑问,我们先回顾一下日志相关的知识: 首先是SL4J,SL4J是个什么东西来着?官方解释为:“The Simple Logging Facade for Java (SLF4J) serve ...
- java多线程系列5 atomic简介
先看一个例子,AtomicInteger 实现的线程安全的累加器 public class AtomicIntTest { public static void main(String[] args) ...
- 【project】【Maven】dynamic web module 3.1 requires 1.7
Maven导入和新建java web 项目时可能报的错. 解决方案: 1.保证 在eclipse 构建 web中关于java版本有三处需要修改统一: 右击项目,选择“propertie”===> ...
- 1.5eigen中高级初始化
1.5 高级初始化 这一节讨论一些初始化矩阵的高级方法. 1.The comma initializer eigen提供一个简单设定所有矩阵系数.向量.数组系数的初始化语法,从左上角开始到右下角结束. ...
- 20175316盛茂淞 2018-2019-2《Java程序设计》第4周学习总结
20175316盛茂淞 2018-2019-2<Java程序设计>第4周学习总结 教材学习内容总结 第五章 子类与继承 一.继承 1.继承定义:避免多个类间重复定义共同行为 2.子类与父类 ...
- # 2019-2020-3 《Java 程序设计》第四周总结
2019-2020-3 <Java 程序设计>第四周知识总结 第五章:继承 1.定义继承关系的语法结构: [修饰符] class 子类名 extends 父类名 { 类体定义 } 父类中应 ...
- VM无法连接到虚拟机
The VMware Authorization Service is not running. 原因 虚拟机服务没有开启 解决方法 1. 我的电脑右击->管理 2. 打开服 ...
- 第二周Access课总结
一.问;这节课你学到了什么知识? 答:回忆上周主要学了关于Access的基础知识和基本操作,一转眼,这周也学到了很多,主要学Access的数据类型的表的建立和管理相关的操作! 收获多少在于学了多少,正 ...
- Celery分布式任务队列快速入门
本节内容 1. Celery介绍和基本使用 2. 项目中使用Celery 3. Celery定时任务 4. Celery与Django结合 5. Django中使用计划任务 一 Celery介绍和基 ...
- 在Azure DevOps Server的代理服务器安装Python环境
Python和Azure DevOps Server Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初主要为系统运维人员编写自动化脚本,在实际应用中,Python已经在前端 ...