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. Codeforces Round #316 (Div. 2) C 思路/模拟

    C. Replacement time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  2. Gym 100971B 水&愚

    Description standard input/output Announcement   Statements A permutation of n numbers is a sequence ...

  3. Accelerating Enum-Based Dictionaries with Generic EnumComparer

    原文发布时间为:2011-03-03 -- 来源于本人的百度文章 [由搬家工具导入] 文章:http://www.codeproject.com/KB/cs/EnumComparer.aspx 源码: ...

  4. 图片上传封装类【包括图片上传和缩略图上传】.NET

    原文发布时间为:2009-08-30 -- 来源于本人的百度文章 [由搬家工具导入] #region 上传图片及上传缩略图    public class UpFile : System.Web.UI ...

  5. 解決eclipse 的alt + / 快捷鍵不好用

    最近公司电脑上的Eclipse没有了自动提示功能,也不是全部不提示,大多数情况下按下“alt+/”键还会产生提示,但是当我在java项目中邪main方法和syso的时候,“alt+/”则会失效,今天在 ...

  6. android中提示&对话框----AlertDialog

    AlertDialog(对话框) 一.对话框的基本使用流程 step1:创建AlertDialog.Buider; step2:调用setIcon()设置图标,setTitle()或者setCusto ...

  7. Manjaro Linux下使用powerline

    作为linux的重度使用者,vim和bash的使用也非常平凡,总想有点不同,感觉千篇一律的提示符已经看的厌倦了.作为广大网友的推荐的powerline可以为bash和vim的提示符美化增色不少.下面请 ...

  8. gitlab+gerrit+jenkins

    gitlab-repo 指在 gitlab 上的代码库, gerrit-repo 指在 gerrit 上的代码库: 从 gitlab-repo 上获取代码 本地修改, 提交 push 到 gerrit ...

  9. 【原创】打开Excel时提示"您尝试打开的文件**.xls的格式与文件扩展名指定的格式不一致"

    问题描述:     系统安装了WPS时,Analyzer导出excel时候,会提示"您尝试打开的文件**.xls的格式与文件扩展名指定的格式不一致",这是Excel的安全问题,   ...

  10. 移动端web如何让页面强制横屏

    前段时间公司针对直播服务做了改版升级,APP客户端支持了横屏和竖屏推流/播放. 在这个背景下,虽然触屏未做改动,但本着敏而好学,不断探索的精神,针对如何让web页面强制横屏显示,做了一下试验研究. 首 ...