mongodb 远程连接问题

非关系型数据库MongoDB

c++开发的高性能,文档型(document)的数据库。

在非关系型数据库中最像关系型数据库的产品

应用场景

  1. 博客
  2. 笔记

文档的数据格式

{
	name:zhangsan,
	age:18,
	address:beijing,
	love:[篮球,排球,足球]
}

MongoDB的数据格式: BSON

MongoDB安装

# 切换到安装目录
cd /usr/local/
# 下载压缩包
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.18.tgz
# 解压
tar -zxvf mongodb-linux-x86_64-4.0.18.tgz
# 创建数据库目录
mkdir -p /data/db
# 启动服务器
./bin/mongod

基本命令

  1. 连接服务器

    ./bin/mongo
    
  2. 查看所有数据库

    show dbs;
    show databases;
    
  3. 切换数据库(如果数据库不存在,会自动创建数据库)

    use 数据库名;
    
  4. 查看当前使用的数据库

db;
  1. 删除数据库

    db.dropDatabase();
    
  2. 创建集合

    db.createCollection("col");
    
  3. 删除集合

    db.集合名称.drop();
    
  4. 查看集合

    show tables;
    show collections;
    
  5. 添加文档

    db.集合名称.insert({name:'张三',age:18,address:"北京"});
    
  6. 查询

    # 查询所有数据
    db.col.find();
    # 条件查询
    db.col.find({name:'张三'});
    # 多条件查询
    db.col.find({name:'张三',age:18});
    
  7. 删除文档

    db.col.drop({name:"张三"});
    db.col.deleteMany({name:"张三"});
    db.col.deleteOne({name:"张三"});
    
  8. 修改

    # 替换一条
    db.col.update({age:18,name:'张三'},{name:'李四',address:"上海2222"});
    # 修改一条
    db.col.update({name:"张三",age:18},{$set:{name:'王五',address:"深圳"}});
    # 修改多条
    db.col.updateMany({name:"张三",age:18},{$set:{name:'王五',address:"深圳"}});
    
  9. 分页查询 limit(每页显示的条数),skip(跳过多少条数据)

    # 跳过一条数据显示两条数据
    db.col.find().limit(2).skip(1); 
    
  10. 多列排序

    #单列排序
    db.col.find().sort({age:-1});
    # 多列排序
    db.col.find().sort({age:-1,_id:-1});
    

如果数据库中没有任何的数据,则该数据库是不显示的。

Mongodb远程连接IP问题

./mongo --bind_ip 0.0.0.0

java连接Mongodb

<!-- 连接参数 -->
<!--  工厂类  -->
    <bean id="databaseFactory" class="org.springframework.data.mongodb.core.SimpleMongoClientDbFactory">
<!--    连接参数    -->
        <constructor-arg value="mongodb://192.168.128.129/blog"/>
    </bean>
<!--  模板类  -->
    <bean id="template" class="org.springframework.data.mongodb.core.MongoTemplate">
<!--  通过构造创建模板类-->
        <constructor-arg ref="databaseFactory"/>
    </bean>

测试:

public static void main(String[] args) {
        ClassPathXmlApplicationContext xmlApplicationContext = new ClassPathXmlApplicationContext("spring-mongo.xml");
        MongoTemplate template = xmlApplicationContext.getBean("template", MongoTemplate.class);

        User user = new User();
        user.setUserId(100);
        user.setName("liangdarong1");
        user.setAge(182);
//向库中添加数据
//        User insert = template.insert(user);
//        System.out.println(insert);

    
    //查询
//        List<User> users = template.find(Query.query(Criteria
//                .where("userId").is(1)
//                .and("name").in("lisi")
//                ),
//                User.class);
//        for (User user1 : users) {
//            System.out.println(user1);
//        }

   //根据id查询
  System.out.println(template.findById("5ed7e4e457de5a792b731d9e",User.class));
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值