mongo 笔记

为什么要存在mongo

在以往的关系型数据库(如Mysql),使用表和列来对数据进行存储,进行数据查询操作。但是这样有一个弊端就是 1. 多表查询会比较复杂。 2.对数据类型要求严格,如果需要加字段会稍微麻烦一些。

在这里插入图片描述

mongo 是以数组或者对象来对数据进行存储,并且还可以嵌套。

# 进入mongo
$ mongo
# 显示所有数据库
> show dbs
# 创建数据库 使用use 命令,
> use gmtest
switched to db gmtest
# 查看当前db
> db
gmtest
# 查看所有db,发现我们创建的并不显示,需要插入数据才可以
> db.gmtest.insert({"name":"菜鸟果果"})
WriteResult({ "nInserted" : 1 })
> show dbs
admin     0.000GB
config    0.000GB
gmtest    0.000GB   #这条是我们刚新建的数据库
local     0.000GB

增删改查

## 增加数据
> db.gmtest.insert({"name":"菜鸟果果2"})
WriteResult({ "nInserted" : 1 })
### 增加一条数据 insertOne
> db.gmtest.insertOne({"name":"菜鸟果果3"})
{
	"acknowledged" : true,
	"insertedId" : ObjectId("6170fcb3ced87b0c142a3ba2")
}
### 同时插入多条数据
> db.gmtest.insertMany([{"name":"菜鸟果果4"},{"name":"菜鸟果果5","age":67}])
{
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("6170fcd8ced87b0c142a3ba3"),
		ObjectId("6170fcd8ced87b0c142a3ba4")
	]
}

## 查询数据
### 查询所有数据
> db.gmtest.find()
{ "_id" : ObjectId("6170e7d1ced87b0c142a3b9f"), "name" : "菜鸟果果" }
{ "_id" : ObjectId("6170e840ced87b0c142a3ba0"), "name" : "菜鸟果果2" }
{ "_id" : ObjectId("6170e8c8ced87b0c142a3ba1"), "name" : "菜鸟果果2" }
{ "_id" : ObjectId("6170fcb3ced87b0c142a3ba2"), "name" : "菜鸟果果3" }
{ "_id" : ObjectId("6170fcd8ced87b0c142a3ba3"), "name" : "菜鸟果果4" }
{ "_id" : ObjectId("6170fcd8ced87b0c142a3ba4"), "name" : "菜鸟果果5", "age" : 67 }
### 查询单条数据
> db.gmtest.findOne({"name":"菜鸟果果"})
{ "_id" : ObjectId("6170e7d1ced87b0c142a3b9f"), "name" : "菜鸟果果" }
### 多个where 进行查询  pretty: 返回数据更加美观,没啥大用
> db.gmtest.find({"name":"菜鸟果果5","age":67}).pretty()
{
	"_id" : ObjectId("6170fcd8ced87b0c142a3ba4"),
	"name" : "菜鸟果果5",
	"age" : 67
}
### 字段存在查询
> db.gmtest.find({"score":{$exists:true}})
### 关于算术运算符(参考下图),查询age 小于80
> db.gmtest.find({"age":{$gt:80}})
{
	"_id" : ObjectId("6170fcd8ced87b0c142a3ba4"),
	"name" : "菜鸟果果5",
	"age" : 67
}

### 更新数据  multi:   true(更新所有数据), false(更新一条数据), 默认是false
> db.gmtest.update({'name':'菜鸟果果5'},{$set:{'age':96}},{multi:true})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
#### 只更新一条数据
> db.gmtest.update({'name':'菜鸟果果2'},{$set:{'score':96}},{multi:false})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.gmtest.find()
{ "_id" : ObjectId("6170e7d1ced87b0c142a3b9f"), "name" : "菜鸟果果" }
{ "_id" : ObjectId("6170e840ced87b0c142a3ba0"), "name" : "菜鸟果果2", "score" : 96 }
{ "_id" : ObjectId("6170e8c8ced87b0c142a3ba1"), "name" : "菜鸟果果2" }
{ "_id" : ObjectId("6170fcb3ced87b0c142a3ba2"), "name" : "菜鸟果果3" }
{ "_id" : ObjectId("6170fcd8ced87b0c142a3ba3"), "name" : "菜鸟果果4" }

### 删除文档
> db.gmtest.deleteMany({'score':{$lt:100}})
{ "acknowledged" : true, "deletedCount" : 1 }

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2xsv85l2ljoko

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用mongoTemplate删除文档的方法有多种。在Java中,可以使用mongoTemplate的remove()方法来删除文档。例如,可以使用以下代码删除一个集合中的所有文档: ```java public void dropCollection(String collectionName) { // 查询表数据条数 Query query = new Query(); List<NationalPostPlatformUserVO> all = mongoTemplate.findAll(NationalPostPlatformUserVO.class); long count = all.size(); if (count > 0) { // 删除文档 mongoTemplate.remove(query, NationalPostPlatformUserVO.class); } } ``` 在MongoDB的shell中,可以使用remove()、deleteOne()、deleteMany()、findOneAndDelete()等方法来删除文档。例如,可以使用以下命令删除文档: ```shell db.collection.remove(query) ``` 其中,collection是集合的名称,query是删除文档的条件。 另外,在使用mongoTemplate进行查询时,可以使用find()方法查询多条文档,使用findOne()方法查询一条文档。例如,可以使用以下代码根据id查询版本信息: ```java Query query = new Query(); Criteria criteria = new Criteria(); criteria.and("id").is(id); query.addCriteria(criteria); AppPackageVersionInfo appPackageVersionInfo = mongoTemplate.findOne(query, AppPackageVersionInfo.class); ``` 以上是使用mongoTemplate删除文档的一些方法和示例。具体的使用方法可以根据实际情况进行调整。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [MongoTemplate增删改查,分页查询,去重查询,全表删除](https://blog.csdn.net/Ciel_Y/article/details/121626495)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [MongoDB学习笔记(十二)——删除文档](https://blog.csdn.net/qq_33206732/article/details/80050076)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值