多版本下载: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/
8天学通MongoDB
启动数据库:
./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"});
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.
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.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.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;
- }
- }
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>
<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>