推荐导航
一.概述
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
二.下载安装
三.常用命令
show dbs; 查看仓库
use db_promotions_test 切换到对应仓库
db 查看当前所在仓库
show tables 查看仓库的表信息
db.createCollection("table"); 创建集合;
db.test.find(); 查询对应表的数据
db.test.insert({'':''}); 插入对应表的数据
db.tradeFlowShopRule.insertMany([{}, {}]) 批量插入对应表的数据
db.test.find({money:{$gt:"100"}}) 大于
db.test.find({title:/你/}) 包含"你"
四.命令分类
查询-模糊与范围
db.test.find({"testList.test2List.name":"张三"}); // 多级嵌套查询;
db.test.find({money:{$gt:"100"}}) 大于
db.test.find({money:{$gte:"100"}}) 大于等于
db.test.find({money:{$lt:"200"}}) 小于操作符 - $lt
db.test.find({money:{$lte:"200"}}) 小于等于操作符 - $lte
db.test.find({money:{$gt:"200", $lt:'''100'}}) 查询 - $lt 和 $gt
db.test.find({"time": {$gt: ISODate("2021-05-13 23:52:30.901")}; 注意: 日期时间判断
db.test.find({title:/你/}) 包含"你"
db.test.find({title:/^你/}) 开头"你"的
db.test.find({title:/你$/}) 结尾是"你"的
字段判空
db.test.find({"logs":{$exists:true}}) //查询longs字段存在记录
db.test.find({"test":{"$ne":null, $exists:true}}); //查询test不为null并且存在记录
排序
db.test.find().sort({"createTime":-1}) 根据创建时间戳排序, 值填1, -1;
插入
db.test.insert({"name":"zhangsan","age":1}); //插入单个
db.test.insertMany([
{"name":"zhangsan","age":1},
{"name":"lisi","age":2}
]); //批量插入
更新
语法格式:db.collection.update(<query>, <update>,{upsert: <boolean>, multi: boolean>,writeConcern: <document>})
query:查询条件, update:update : update的对象和一些更新的操作符(如
,
,
,inc…)等
-
第三个参数
- upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
- multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
- writeConcern :可选,抛出异常的级别。
-
inc:只能用于操作数值类型的数据,包括整数、长整数和双精度浮点数,用于其他类型的数据会导致操作失败。
db.test.update({'name':'张三'}, {$set:{'name':'李四'}}); //第一个参数:查询条件, 第二个参数修改结果;
db.test.update({'name':'张三'}, {$set:{'name':'李四'}}, true) //更新查询条件修改,找不到时插入一条
db.test.update({'name':'张三'}, {$inc:{'age':10}}, true) //修改前age是1, 执行后age:11