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. [luogu_P1251][LOJ#6008]「网络流 24 题」餐巾计划

    [luogu_P1251][LOJ#6008]「网络流 24 题」餐巾计划 试题描述 一个餐厅在相继的 \(N\) 天里,第 \(i\) 天需要 \(R_i\) 块餐巾 \((i=l,2,-,N)\) ...

  2. vue 中父子组件传值:props和$emit

    更新----------- 1 父组件向子组件传值:通过props数组: 在vue-cli Login.vue父组件中有AcceptAndRefuse.vue子组件,首先import进子组件hello ...

  3. HTML+CSS 滚动条样式自定义 - 适用于 div,iframe, html 等

    友言:这两天被滚动条整的无与伦比,在此做下总结: 首先自定义浏览器滚动条的实现原理:计算浏览器滚动条的高度,层级1的高度与滚动条的总高度是一样的,通过相似比例计算: 浏览器滚动条总高度 :滚动条高度 ...

  4. python(4)-- 日期 & 时间

    1. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 2. 时间间隔是以秒为单位的浮点小数. 3. 每个时间戳都以自从1970年1月1日午夜(历元)经过了多长 ...

  5. DFA NFA

    如果不用 DFA, NFA,我觉得也是可以处理编译过程的,一个字符一个字符的读入,并结合上下文,来确定 token

  6. duilib入门简明教程 -- 完整的自绘标题栏(8) (转)

    原文转自:http://www.cnblogs.com/Alberl/p/3343763.html     看了前面那么多教程,相信对duilib已有基本映像了,我们就快马加鞭,做出一个完整的自绘标题 ...

  7. DBus介绍

    1. 介绍 DBus是一种桌面环境的进程间通讯(IPC)机制,有低时延.低消耗等优点 基于socket,提供了一对一的对等通讯:使用dbus-daemon作为后台进程时,可实现多对多通讯 由如下三个层 ...

  8. C语言中的基础知识变量探讨

    C语言中的变量是编程的基础,主要有四个要素:存储类型.存储大小.存储名称和存储地址. 一.变量的要素: 1.存储类型:主要表明名变量存储的特征,主要有auto.extern.static和regist ...

  9. 对/proc和/sys的一些理解

    一切皆文件,设备(文件)可以通过读写来操作:/proc procfs:/sys sysfs: 个人的理解(不知对不对,感觉有些片面)/proc是内存中有关系统进程的实时信息:/sys是有关系统内核以及 ...

  10. python 高阶函数和匿名函数

    #!/usr/bin/env python # -*- coding:utf-8 -*- # @Time : 2017/11/02 22:46 # @Author : lijunjiang # @Fi ...