MongoDB是一个基于分布式文件存储的数据库。
1.拉取镜像
docker pull mongo
2.创建容器
docker run -di --name mongo-service --restart=always -p 27017:27017 -v ~/data/mongodata:/data mongo
3.常用命令
#查看数据库:
show dbs;
#切换数据库
use testdb
#创建集合
db.createCollection("集合名")
#查看集合
show tables
show collections;
#删除集合
db.user.drop()
db.collection.drop()
#删除数据库
db.dropDatabase()
删除
db.collection.remove() 根据条件删除,删除一个可以加参数 true
db.collection.deleteOne()
db.collection.deleteMany()
#函数
ObjectId()
#新增数据
db.user.insert({name:"lisi",age:13})
db.collection.insert({name:"tom",age:28})
db.collection.insert([{name:"tom",age:28},{name:"cat",age:10}])
#统计数量
db.user.find().count()
#创建索引
db.user.createIndex({name:1},{unique:true})
#删除索引
db.user.dropIndex({name:1})
#查询所有
db.getCollection("kg_platform_document_log").find()
db.kg_platform_document_log.find()
#根据id查询
db.kg_platform_document_menu.find({"_id":ObjectId("62e22d0d8aab63467bc8bc3d")})
#指定条件
db.kg_platform_document_log.find({login_name:"superadmin"})
#指定字段显示
db.getCollection("kg_platform_document_file").find({},{"file_hash_code":true})
#去重
db.kg_platform_document_file.distinct("id")
#update 默认会使用新对象代替旧对象,默认只会修改一个
db.kg_platform_document_menu.update({"name":"tom"},{"age":12})
#multi 修改多个
db.kg_platform_document_menu.update({"_id":ObjectId("62e22d0d8aab63467bc8bc3d")},{$set:{"name":"tom"}},{multi:true})
#新增字段属性
db.kg_platform_document_menu.update({"_id":ObjectId("62e22d0d8aab63467bc8bc3d")},{$set:{"name":"tom"}})
#用来删除指定的字段属性
db.kg_platform_document_menu.update({"_id":ObjectId("62e22d0d8aab63467bc8bc3d")},{$unset:{"name":"tom"}})
findOne 用来查询集合中符合条件的第一个文档
updateMany 会修改多个
#联想搜索
Query query = Query.query(Criteria.where("associateWords").regex(".*?\\"+searchName+".*"));
this.mongoTemplate.find(query, ApAssociateWords.class);
正则匹配说明
. 表示匹配任意字符
* 表示匹配0次以上
*?表示非贪婪匹配,碰到符合条件的立马匹配