MongoDB

MongoDB的安装及启动

  1. 下载mongodb安装包并解压下载地址
  2. 创建一个data和log文件夹(随意哪个盘都可以)
  3. 配置系统环境变量path(目的是执行起来方便)
  4. 将MongoDB服务做成一个window服务
    mongod -logpath F:\\mongodb\log\mongo.log --logappend --dbpath F:\\mongodb\data --serviceName MongoDB --install
  5. 启动MongoDB服务
    net start MongoDB
  6. 启动MongoDB客户端
    mongo

MongoDB与Oracle常用操作的对比

操作oraclemongodb
新建数据库安装时创建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=** wheredb.collection.update()
select * from t_name where **db.collection.find()
排序order by * asc/descdb.collection.find().sort()
分页rownumdb.collection.find().skip().limit()
andand没有对应字段
oror$or
inin$in
not innot in$nin
>>$gt
<<$lt
<=<=$lte
==无对应字段

MongoDB增删改查

  1. 单条增加
    var single={"name":"telangpu","password":"123456","age":20,
    "address":{"province":"henan","city":"puyang"},
    "favourite":["apple","bnana"]
    }
    single.age = 50
    db.person.insert(single)
  2. 批量增加
    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());
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值