MongoDB的安装及启动
- 下载mongodb安装包并解压下载地址
- 创建一个data和log文件夹(随意哪个盘都可以)
- 配置系统环境变量path(目的是执行起来方便)
- 将MongoDB服务做成一个window服务
mongod -logpath F:\\mongodb\log\mongo.log --logappend --dbpath F:\\mongodb\data --serviceName MongoDB --install
- 启动MongoDB服务
net start MongoDB - 启动MongoDB客户端
mongo
MongoDB与Oracle常用操作的对比
操作 | oracle | mongodb |
---|---|---|
新建数据库 | 安装时创建 | use命令 切换/新建 数据库 |
删除数据库 | 使用DBCA图形化界面来进行 | db.dropDatabase() |
新建表(集合) | create table t_name() | use collection_name |
删表 | alter table t_name drop(column) | db.collection.drop() |
增 | insert into t_name() values() | db.collection.insert() |
删 | delete from t_name where ** | db.collection.remove() |
改 | update t_name set ziduan=** where | db.collection.update() |
查 | select * from t_name where ** | db.collection.find() |
排序 | order by * asc/desc | db.collection.find().sort() |
分页 | rownum | db.collection.find().skip().limit() |
and | and | 没有对应字段 |
or | or | $or |
in | in | $in |
not in | not in | $nin |
> | > | $gt |
< | < | $lt |
<= | <= | $lte |
= | = | 无对应字段 |
MongoDB增删改查
增:
- 单条增加
var single={"name":"telangpu","password":"123456","age":20,
"address":{"province":"henan","city":"puyang"},
"favourite":["apple","bnana"]
}
single.age = 50
db.person.insert(single) - 批量增加
for(var i=0;i<5;i++){
var single={"name":"telangpu"+i,"password":"123456","age":20,
"address":{"province":"henan","city":"puyang"},
"favourite":["apple","bnana"]
}
single.age = 50
db.person.insert(single);
}
删:
/参数为{}代表删除所有数据且不可回滚,参数为BSON代表删除一个/
db.collection.remove();
改:
db.collection.update(
query, /*查询条件*/
update, /*更新的对象以及一些更新操作符($inc,$set)*/
{
upsert:boolean,/*默认false,true--如果此数据不存在则插入,否则不插入*/
multi:boolean,
writeConcern:document
}
);
Java操作MongoDB实现增删改查
package com.itboy.test;
import java.net.UnknownHostException;
import java.util.Iterator;
import java.util.Set;
import org.junit.BeforeClass;
import org.junit.Test;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.MongoClient;
import com.mongodb.WriteResult;
public class TestMongoDB {
private static MongoClient mongoClient;// 连接mongodb客户端
private static DB db;// 所操作的数据库
private DBCollection collection;
private BasicDBObject dbObject = new BasicDBObject(); // 增删改查以该类传入数据
/**
* 初始化数据库连接
*/
@BeforeClass
public static void init() {
try {
mongoClient = new MongoClient("localhost:27017");// 主机地址+mongodb端口号
} catch (UnknownHostException e) {
System.out.println("未找到主机");
e.printStackTrace();
}
db = mongoClient.getDB("test");
}
/**
* 获得test库中的所有集合
*/
@Test
public void getCollections() {
Set<String> collectionNames = db.getCollectionNames();
Iterator<String> iterator = collectionNames.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
/**
* 取到对应的集合
*
* @param 集合名
* @return
*/
public DBCollection getCollection(String collection_name) {
collection = db.getCollection(collection_name);
return collection;
}
/**
* 增
*/
@Test
public void insert() {
dbObject.put("name", "gouwa");
dbObject.put("age", 13);
getCollection("person").insert(dbObject);
}
/**
* 删
*/
@Test
public void delete() {
dbObject.put("name", "gouwa");
dbObject.append("age", new BasicDBObject("$gte", "14"));
WriteResult remove = getCollection("person").remove(dbObject);
System.out.println(remove);
System.out.println(remove.getN());
}
/**
* 改
*/
@Test
public void update() {
dbObject.put("name", "you");
WriteResult update = getCollection("person").update(dbObject,
new BasicDBObject("$set", new BasicDBObject("age", 24)), true, true);
System.out.println(update.getN());// 打印出操作影响的行数
}
/**
* 查
*/
@Test
public void select() {
// 查询name为you,且age为23的数据
dbObject.append("age", 23).append("name", "you");
DBCursor find = getCollection("person").find(dbObject);
// //查询age为23,24的数据 $in的使用
dbObject.append("$in", new BasicDBObject[] { new BasicDBObject("age", 23), new BasicDBObject("age", 24) });
DBCursor find2 = getCollection("person").find(dbObject);
// 查询age小于24的数据
dbObject.append("age", new BasicDBObject("$lt", 24));
DBCursor find3 = getCollection("person").find(dbObject);
// 查询age等于23或24的数据 $or的使用
dbObject.append("$or", new BasicDBObject[] { new BasicDBObject("age", 23), new BasicDBObject("age", 24) });
DBCursor find4 = getCollection("person").find(dbObject);
while (find4.hasNext()) {
System.out.println(find4.next());
}
}
}