import com.mongodb.MongoClient;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import java.net.UnknownHostException;
import java.util.List;
import java.util.Set; // http://api.mongodb.org/java/2.12/
// http://central.maven.org/maven2/org/mongodb/mongo-java-driver/
public class MongoTest { /**
* @author Man_hua
* @param args
* @throws UnknownHostException
*/
public static void main(String[] args) { //connect
MongoClient mongoClient;
try {
mongoClient = new MongoClient( "localhost" , 27017 ); //打印所有数据库
print("打印所有数据库");
for (String s : mongoClient.getDatabaseNames()) {
System.out.println(s);
} //连接数据库
DB db = mongoClient.getDB( "mydb" ); //显示所有collection
print("显示所有collection");
Set<String> colls = db.getCollectionNames();
for (String s : colls) {
System.out.println(s);
} //进入下一级
DBCollection coll = db.getCollection("testData"); //单个插入
BasicDBObject doc = new BasicDBObject("name", "MongoDB").
append("type", "database").
append("count", 1).
append("info", new BasicDBObject("x", 203).append("y", 102)); coll.insert(doc); //多个插入
for (int i=0; i < 100; i++) {
coll.insert(new BasicDBObject("i", i));
} //获得记录计数
print("获得记录计数");
System.out.println(coll.getCount()); //查询一个
print("查询一个");
DBObject myDoc = coll.findOne();
System.out.println(myDoc); //游标遍历
print("游标遍历");
DBCursor cursor = coll.find();
try {
while(cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
} //条件查询
print("条件查询");
BasicDBObject query = new BasicDBObject("i", 71);
cursor = coll.find(query);
try {
while(cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
} //带操作符的条件查询
print("带操作符的条件查询");
query = new BasicDBObject("i", new BasicDBObject("$gt", 20).
append("$lte", 30));
cursor = coll.find(query);
try {
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
} //创建索引
coll.createIndex(new BasicDBObject("i", 1)); // create index on "i", ascending---ascending (1) or descending (-1) //打印索引信息
print("打印索引信息");
List<DBObject> list = coll.getIndexInfo();
for (DBObject o : list) {
System.out.println(o);
} } catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} static void print(String out){
System.out.println(out);
}
}
QueryBuilder builder = QueryBuilder.start("x").is(0)
.and("y").greaterThan(10).lessThan(70);
builder.get() DBObject query = QueryBuilder.start("x").is(0)
.and("y").greaterThan(10).lessThan(70).get(); DBObject query = new BasicDBObject("x", 0)
.append("y", new BasicDBObject("$gt", 10).append("$lt", 90)); DBCursor cursor = lines.find()
.sort(new BasicDBObject("start.x", 1).append("start.y", -1))
.skip(2).limit(10); collection.update(new BasicDBObject("_id", "alice"),
new BasicDBObject("$set", new BasicDBObject("age", 24)));

Mongo JavaTest的更多相关文章

  1. 谈一谈NOSQL的应用,Redis/Mongo

    1.心路历程 上年11月份来公司了,和另外一个同事一起,做了公司一个移动项目的微信公众号,然后为了推广微信公众号,策划那边需要我们做一些活动,包括抽奖,投票.最开始是没有用过redis的,公司因为考虑 ...

  2. MongoDB分组汇总操作,及Spring data mongo的实现

    转载请在页首注明作者与出处 一:分组汇总 1.1:SQL样例 分组汇总的应用场景非常多,比如查询每个班级的总分是多少,如果用关系形数据库,那么sql是这样子的 ),class from score g ...

  3. mongo DB for C#

    (1)Download the MongoDB C#驱动. http://www.nuget.org/packages/mongocsharpdriver/. (2) Add Reference to ...

  4. Mongo基础使用,以及在Express项目中使用Mongoose

    MongoDB的基本使用 MongoDB特点: 使用BSON存储数据 支持相对丰富的查询操作(相对其他nosql数据库) 支持索引 副本集(支持多个实例/多个服务器运行同个数据库) 分片(数据库水平扩 ...

  5. 【mongo】mongoVUE使用

    1.查询存在字段"test"的项 {"test":{$exists:true}} 2.在表中插入字段 {$set:{"}} 3.正则匹配 {" ...

  6. mongo遍历表

    $mongo = new MongoClient("mongodb://192.168.8.189:27017"); $collectObj = $mongo->select ...

  7. python & mongo问题记录

    背景介绍 使用python操作mongo进行的一些操作记录,为了方便日后可以快速的解决类似问题. 准备工作 为了尽可能简单的说明,我将插入几条简单的数据. from pymongo import Mo ...

  8. Lind.DDD.Repositories.Mongo层介绍

    回到目录 之前已经发生了 大叔之前讲过被仓储化了的Mongodb,而在大叔开发了Lind.DDD之后,决定把这个东西再搬到本框架的仓储层来,这也是大势所趋的,毕竟mongodb是最像关系数据库的NoS ...

  9. MongoDB基础入门003--使用官方驱动操作mongo,C#

    本篇先简单介绍一下,使用官方驱动来操作MongoDB.至于MongoDB原生的增删改查语句,且等以后再慢慢学习. 一.操作MongoDB的驱动主要有两个 1.官方驱动:https://github.c ...

随机推荐

  1. PNG图片透明 IE6 解决方法

    原文发布时间为:2009-11-18 -- 来源于本人的百度文章 [由搬家工具导入] png透明解决办法 第1 种方法:定义一个样式,给某个div应用这个样式后,div的透明png背景图片自动透明了。 ...

  2. js7:表单的学习,Forms对象

    原文发布时间为:2008-11-09 -- 来源于本人的百度文章 [由搬家工具导入] dreamveawer中,选择插入——表单——然后后面的几个选项进行学习: 大体上这么些类型: <html& ...

  3. PE笔记之NT头PE签名

    typedef struct _IMAGE_NT_HEADERS {       DWORD Signature;                     //PE头签名PE\0\0       IM ...

  4. hdu 3657 最小割的活用 / 奇偶方格取数类经典题 /最小割

    题意:方格取数,如果取了相邻的数,那么要付出一定代价.(代价为2*(X&Y))(开始用费用流,敲升级版3820,跪...) 建图:  对于相邻问题,经典方法:奇偶建立二分图.对于相邻两点连边2 ...

  5. hdu 4497(排列组合+LCM和GCD)

    GCD and LCM Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total ...

  6. LeetCode OJ-- Jump Game

    https://oj.leetcode.com/problems/jump-game/ 从0开始,根据每一位上存的数值往前跳. 这道题给想复杂了... 记录当前位置 pos,记录可以调到的最远达位置为 ...

  7. JMeter部分功能详解

    JMeter 介绍: 一个非常优秀的开源免费的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. 从性能工具的原理划分: Jmeter工具和其他性能工具在原理上完全一致,工 ...

  8. ActiveMQ spring (一)

    在5.8.0版本下 配置成功. 参考文档:http://yinbinhome.iteye.com/blog/1273228

  9. luogu P1260 工程规划(luogu wa)don't know way

    题目描述 造一幢大楼是一项艰巨的工程,它是由n个子任务构成的,给它们分别编号1,2,…,n(5≤n≤1000).由于对一些任务的起始条件有着严格的限制,所以每个任务的起始时间T1,T2,…,Tn并不是 ...

  10. python 关键词

    一.python关键字   1. and :表示逻辑判断 [与] a = '1' b = 1 if a and b: print('Hello Python') 2.as :单独没有实际意思,常与wi ...