下载:https://www.mongodb.org/downloads
多版本下载:https://www.mongodb.org/dl/win32/x86_64-2008plus-ssl
http://downloads.mongodb.org/win32/mongodb-win32-x86_64-latest.zip
http://docs.mongodb.org/manual/
启动数据库:
./bin/mongod --dbpath=data
mongo shell访问数据库
bin/mongo
http查看数据库:
http://192.168.1.132:27017/
基本操作:
插入:
db.person.insert({"name":"jack","age":20});
db.person.insert({"name":"joe","age":25});
db.person.insert({"name":"java","age":23});
查找:
db.person.find();
db.person.find({"name":"java"});
db.person.find({"age":23});
更新
db.person.update({"name":"java"},{"name":"java_name","age":1024});
删除:
db.person.remove({"name":"java_name"});
http://www.cnblogs.com/huangxincheng/archive/2012/02/18/2356595.html
readme文档:
COMPONENTS
bin/mongod - The database process.
bin/mongos - Sharding controller.
bin/mongo - The database shell (uses interactive javascript).
UTILITIES
bin/mongodump - MongoDB dump tool - for backups, snapshots, etc..
bin/mongorestore - MongoDB restore a dump
bin/mongoexport - Export a single collection to test (JSON, CSV)
bin/mongoimport - Import from JSON or CSV
bin/mongofiles - Utility for putting and getting files from MongoDB GridFS
bin/mongostat - Show performance statistics
RUNNING
For command line options invoke:
$ ./mongod --help
To run a single server database:
$ mkdir /data/db
$ ./mongod
$
$ # The mongo javascript shell connects to localhost and test database by default:
$ ./mongo
> help
DRIVERS
Client drivers for most programming languages are available at mongodb.org. Use the
shell ("mongo") for administrative tasks.
BIT BUILD NOTES
MongoDB uses memory mapped files. If built as a 32 bit executable, you will
not be able to work with large (multi-gigabyte) databases. However, 32 bit
builds work fine with small development databases.
Java 操作mongodb例子:
在本示例之前你需要启动mongod.exe的服务,启动后,下面的程序才能顺利执行;
1、 建立SimpleTest.java,完成简单的mongoDB数据库操作
Mongo mongo = new Mongo();
这样就创建了一个MongoDB的数据库连接对象,它默认连接到当前机器的localhost地址,端口是27017。
DB db = mongo.getDB(“test”);
这样就获得了一个test的数据库,如果mongoDB中没有创建这个数据库也是可以正常运行的。如果你读过上一篇文章就知道,mongoDB可以在没有创建这个数据库的情况下,完成数据的添加操作。当添加的时候,没有这个库,mongoDB会自动创建当前数据库。
得到了db,下一步我们要获取一个“聚集集合DBCollection”,通过db对象的getCollection方法来完成。
DBCollection users = db.getCollection("users");
这样就获得了一个DBCollection,它相当于我们数据库的“表”。
package com.jiepu.mongodb;
import java.util.Set;
import org.bson.Document;
import com.alibaba.fastjson.JSON;
import com.mongodb.BasicDBObject;
import com.mongodb.BasicDBObjectBuilder;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import com.mongodb.client.result.UpdateResult;
/**
* Hello world!
*
*/
public class App {
//private static String ip="192.168.1.132";
private static String ip="127.0.0.1";
private static int port=27017;
public static void main(String[] args) {
test001();
//test002();
//test003();
System.out.println("Hello World!");
}
private static void test003() {
System.out.println("============");
Mongo mg = new Mongo(ip, port);
System.out.println(mg.getDatabaseNames());
DB db = mg.getDB("test");
Set<String> collectionNames = db.getCollectionNames();
for (String string : collectionNames) {
System.out.println(string);
}
// db游标
DBCollection dbCollection = db.getCollection("person");
DBCursor cur = dbCollection.find();
while (cur.hasNext()) {
System.out.println(cur.next());
}
}
private static void test001() {
System.out.println("======新版本api======");
MongoClient mongoClient = new MongoClient(ip, port);
System.out.println("数据库:"+mongoClient.getDatabaseNames());
MongoDatabase database = mongoClient.getDatabase("test");
MongoIterable<String> names=database.listCollectionNames();
for (String string : names) {
System.out.println("数据库表:"+string);
}
MongoCollection<Document> collections = database
.getCollection("person");
//清空表
collections.drop();
/*
FindIterable<Document> findIterable = collections.find();
for (Document document : findIterable) {
System.out.println(document);
}*/
collections.createIndex(new BasicDBObject("name",1));//1代表升序
for(int i=0;i<15;i++)
{
Document cDocument=new Document();
cDocument.put("name", "data"+i);
cDocument.put("age", 32+i);
//add
collections.insertOne(cDocument);
}
//delete
collections.deleteOne(new BasicDBObject("name","data2"));
collections.deleteMany(new BasicDBObject("name","data3"));
int count=0;
for (Document document : collections.find()) {
System.out.println(document);
count++;
}
System.out.println("count="+count);
System.out.println("find ");
//find
for (Document document : collections.find(new BasicDBObject("age",33)))
{
System.out.println(document.toJson());
}
//Document updateDocument=new Document("name","fuck");
//edit
//UpdateResult updateResult=collections.updateOne(new Document("name","data14"), new Document("name","nishizhu你是猪啊").append("age", 1024));
//UpdateResult updateResult=collections.updateMany(new BasicDBObject("age","34"), new Document("name","fuck").append("age", 1024));
//System.out.println(JSON.toJSONString(updateResult));
//find
for (Document document : collections.find(new BasicDBObject("age",1024)))
{
System.out.println(document.toJson());
}
//collections.createIndex(builder.get());
mongoClient.close();
}
private static void test002() {
System.out.println("=====旧版本api=======");
MongoClient mongoClient = new MongoClient(ip, port);
System.out.println("数据库:"+mongoClient.getDatabaseNames());
DB db = mongoClient.getDB("test");
Set<String> collectionNames = db.getCollectionNames();
for (String tablename : collectionNames) {
System.out.println("表:"+tablename);
}
// db游标
DBCollection dbCollection = db.getCollection("person2");
dbCollection.drop();
for(int i=0;i<15;i++)
{
BasicDBObject cDocument=new BasicDBObject();
cDocument.put("name", "data"+i);
cDocument.put("age", 32+i);
//add
dbCollection.insert(cDocument);
}
DBCursor cur = dbCollection.find();
System.out.println("count="+cur.count());
while (cur.hasNext()) {
DBObject dbObject=cur.next();
System.out.println(dbObject);
}
dbCollection.remove(new BasicDBObject("name","data13"));
dbCollection.update(new BasicDBObject("name","data14"), new BasicDBObject("name","nishizhu你是猪啊").append("age", 1024));
cur = dbCollection.find();
System.out.println("count="+cur.count());
while (cur.hasNext()) {
System.out.println(cur.next());
}
}
}
package com.jiepu.mongodb;
import java.net.UnknownHostException;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.junit.Test;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.util.JSON;
public class TestMongoDriver {
@Test
public void testCRUD() throws UnknownHostException {
// 连接到mongodb
Mongo mongo = new Mongo("192.168.1.132", 27017);
// 打开数据库test
DB db = mongo.getDB("test");
// 遍历所有集合的名字
Set<String> colls = db.getCollectionNames();
for (String s : colls) {
System.out.println(s);
// 先删除所有Collection(类似于关系数据库中的"表")
if (!s.equals("system.indexes")) {
db.getCollection(s).drop();
}
}
// 取得集合emp(若:emp不存在,mongodb将自动创建该集合)
DBCollection coll = db.getCollection("emp");
// delete all
DBCursor dbCursor = coll.find();
for (DBObject dbObject : dbCursor) {
coll.remove(dbObject);
}
// create
BasicDBObject doc = new BasicDBObject("name", "杨俊明").append("sex", "男")
.append("address",
new BasicDBObject("postcode", "201202").append(
"street", "田林路888号").append("city", "上海"));
coll.insert(doc);
// retrieve
BasicDBObject docFind = new BasicDBObject("name", "杨俊明");
DBObject findResult = coll.findOne(docFind);
System.out.println(findResult);
// update
doc.put("sex", "MALE");// 把sex属性从"男",改成"MALE"
coll.update(docFind, doc);
findResult = coll.findOne(docFind);
System.out.println(findResult);
coll.dropIndexes();// 先删除所有索引
// create index
coll.createIndex(new BasicDBObject("name", 1)); // 1代表升序
// 复杂对象
UserData userData = new UserData("jimmy", "123456");
Set<String> pets = new HashSet<String>();
pets.add("cat");
pets.add("dog");
Map<String, String> favoriteMovies = new HashMap<String, String>();
favoriteMovies.put("dragons", "Dragons II");
favoriteMovies.put("avator", "Avator I");
userData.setFavoriteMovies(favoriteMovies);
userData.setPets(pets);
userData.setBirthday(getDate(1990, 5, 1));
BasicDBObject objUser = new BasicDBObject("key", "jimmy").append(
"value", toDBObject(userData));
coll.insert(objUser);
System.out.println(coll.findOne(objUser));
}
/**
* 将普通Object对象转换成mongodb的DBObject对象
*
* @param obj
* @return
*/
private DBObject toDBObject(Object obj) {
String json = com.alibaba.fastjson.JSON.toJSONString(obj);
return (DBObject) JSON.parse(json);
}
/**
* 获取指定日期
*
* @param year
* @param month
* @param day
* @return
*/
private Date getDate(int year, int month, int day) {
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(year, month - 1, day);
return calendar.getTime();
}
}
package com.jiepu.mongodb;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;
import java.util.Set;
public class UserData implements Serializable {
private static final long serialVersionUID = -4770493237851400594L;
private String userName;
private String password;
private Set<String> pets;
private Map<String, String> favoriteMovies;
private Date birthday;
public UserData() {
}
public UserData(String userName, String passWord) {
this.userName = userName;
this.password = passWord;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Set<String> getPets() {
return pets;
}
public void setPets(Set<String> pets) {
this.pets = pets;
}
public Map<String, String> getFavoriteMovies() {
return favoriteMovies;
}
public void setFavoriteMovies(Map<String, String> favoriteMovies) {
this.favoriteMovies = favoriteMovies;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jiepu</groupId>
<artifactId>mongodb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>mongodb</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.41</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
<version>3.0.2</version>
</dependency>
</dependencies>
</project>