Mongodb新增文档、查询文档、更新文档、删除文档

avatar
作者
猴君
阅读量:0

文章目录

1、新增文档

1.1、进入容器

[root@localhost docker]# docker exec -it mongodb mongosh Current Mongosh Log ID: 66a8ce38d0b85e052bb78f05 Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.10.6 Using MongoDB:          7.0.0 Using Mongosh:          1.10.6  For mongosh info see: https://docs.mongodb.com/mongodb-shell/  ------    The server generated these startup warnings when booting    2024-07-30T10:58:29.512+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted    2024-07-30T10:58:29.513+00:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'    2024-07-30T10:58:29.513+00:00: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. We suggest setting it to 'never'    2024-07-30T10:58:29.513+00:00: vm.max_map_count is too low ------  test>   

1.2、向集合插入一个新文档

atguigu> db.myCollection.insertOne({name:'小蓝',age:21}) {   acknowledged: true,   insertedId: ObjectId("66a9b0067066bd635ba48cf0") } 

1.3、查询文档

atguigu> db.myCollection.find() [   { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },   { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 } ] 

1.4、向集合插入一个或者多个文档

atguigu> db.myCollection.insertMany([{name:'小狗',age:22,gender:'女'},{name:'小猫',age:23,gender:'男'}]) {   acknowledged: true,   insertedIds: {     '0': ObjectId("66a9b2597066bd635ba48cf1"),     '1': ObjectId("66a9b2597066bd635ba48cf2")   } } 
atguigu> db.myCollection.find() [   { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },   { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 },   {     _id: ObjectId("66a9b2597066bd635ba48cf1"),     name: '小狗',     age: 22,     gender: '女'   },   {     _id: ObjectId("66a9b2597066bd635ba48cf2"),     name: '小猫',     age: 23,     gender: '男'   } ] 

2、查询文档

2.1、查询年龄等于20

atguigu> db.myCollection.find({age:20}) [ { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 } ] 
atguigu> db.myCollection.insertMany([{name:'小牛',age:23,gender:'男'},{name:'小羊',age:20,gender:'男'}]) {   acknowledged: true,   insertedIds: {     '0': ObjectId("66a9cf7d7066bd635ba48cf3"),     '1': ObjectId("66a9cf7d7066bd635ba48cf4")   } } 
atguigu> db.myCollection.find({age:20}) [   { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },   {     _id: ObjectId("66a9cf7d7066bd635ba48cf4"),     name: '小羊',     age: 20,     gender: '男'   } ] 

2.2、查询年龄是20的男性

atguigu> db.myCollection.find({age:20,gender:'男'}) [   {     _id: ObjectId("66a9cf7d7066bd635ba48cf4"),     name: '小羊',     age: 20,     gender: '男'   } ] 

2.3、查询年龄是20或者性别是男

atguigu> db.myCollection.find({$or:[{age:20},{gender:'男'}]}) [   { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },   {     _id: ObjectId("66a9b2597066bd635ba48cf2"),     name: '小猫',     age: 23,     gender: '男'   },   {     _id: ObjectId("66a9cf7d7066bd635ba48cf3"),     name: '小牛',     age: 23,     gender: '男'   },   {     _id: ObjectId("66a9cf7d7066bd635ba48cf4"),     name: '小羊',     age: 20,     gender: '男'   } ] 

2.4、查询年龄小于23

atguigu> db.myCollection.find({age:{$lt:23}}) [   { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },   { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 },   {     _id: ObjectId("66a9b2597066bd635ba48cf1"),     name: '小狗',     age: 22,     gender: '女'   },   {     _id: ObjectId("66a9cf7d7066bd635ba48cf4"),     name: '小羊',     age: 20,     gender: '男'   } ] 

2.5、查询年龄小于等于23

atguigu> db.myCollection.find({age:{$lte:23}}) [   { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },   { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 },   {     _id: ObjectId("66a9b2597066bd635ba48cf1"),     name: '小狗',     age: 22,     gender: '女'   },   {     _id: ObjectId("66a9b2597066bd635ba48cf2"),     name: '小猫',     age: 23,     gender: '男'   },   {     _id: ObjectId("66a9cf7d7066bd635ba48cf3"),     name: '小牛',     age: 23,     gender: '男'   },   {     _id: ObjectId("66a9cf7d7066bd635ba48cf4"),     name: '小羊',     age: 20,     gender: '男'   } ] 

2.6、查询大于等于23

atguigu> db.myCollection.find({age:{$gte:23}}) [   {     _id: ObjectId("66a9b2597066bd635ba48cf2"),     name: '小猫',     age: 23,     gender: '男'   },   {     _id: ObjectId("66a9cf7d7066bd635ba48cf3"),     name: '小牛',     age: 23,     gender: '男'   } ] 

2.7、查询年龄不等于23

atguigu> db.myCollection.find({age:{$ne:23}}) [   { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },   { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 },   {     _id: ObjectId("66a9b2597066bd635ba48cf1"),     name: '小狗',     age: 22,     gender: '女'   },   {     _id: ObjectId("66a9cf7d7066bd635ba48cf4"),     name: '小羊',     age: 20,     gender: '男'   } ] 

2.8、模糊查询包含 小 的名字

atguigu> db.myCollection.find({name:{$regex:'小'}}) [   { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },   { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 },   {     _id: ObjectId("66a9b2597066bd635ba48cf1"),     name: '小狗',     age: 22,     gender: '女'   },   {     _id: ObjectId("66a9b2597066bd635ba48cf2"),     name: '小猫',     age: 23,     gender: '男'   },   {     _id: ObjectId("66a9cf7d7066bd635ba48cf3"),     name: '小牛',     age: 23,     gender: '男'   },   {     _id: ObjectId("66a9cf7d7066bd635ba48cf4"),     name: '小羊',     age: 20,     gender: '男'   } ] 
atguigu> db.myCollection.find({name://}) [   { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },   { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 },   {     _id: ObjectId("66a9b2597066bd635ba48cf1"),     name: '小狗',     age: 22,     gender: '女'   },   {     _id: ObjectId("66a9b2597066bd635ba48cf2"),     name: '小猫',     age: 23,     gender: '男'   },   {     _id: ObjectId("66a9cf7d7066bd635ba48cf3"),     name: '小牛',     age: 23,     gender: '男'   },   {     _id: ObjectId("66a9cf7d7066bd635ba48cf4"),     name: '小羊',     age: 20,     gender: '男'   } ] 

2.9、模糊查询包含 小 的名字 以及 升序 排序

atguigu> db.myCollection.find({name://}).sort({age:1}) [   { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },   {     _id: ObjectId("66a9cf7d7066bd635ba48cf4"),     name: '小羊',     age: 20,     gender: '男'   },   { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 },   {     _id: ObjectId("66a9b2597066bd635ba48cf1"),     name: '小狗',     age: 22,     gender: '女'   },   {     _id: ObjectId("66a9b2597066bd635ba48cf2"),     name: '小猫',     age: 23,     gender: '男'   },   {     _id: ObjectId("66a9cf7d7066bd635ba48cf3"),     name: '小牛',     age: 23,     gender: '男'   } ] 

2.10、模糊查询包含 小 的名字 以及 降序 排序

atguigu> db.myCollection.find({name://}).sort({age:-1}) [   {     _id: ObjectId("66a9b2597066bd635ba48cf2"),     name: '小猫',     age: 23,     gender: '男'   },   {     _id: ObjectId("66a9cf7d7066bd635ba48cf3"),     name: '小牛',     age: 23,     gender: '男'   },   {     _id: ObjectId("66a9b2597066bd635ba48cf1"),     name: '小狗',     age: 22,     gender: '女'   },   { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 },   { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },   {     _id: ObjectId("66a9cf7d7066bd635ba48cf4"),     name: '小羊',     age: 20,     gender: '男'   } ] 

2.11、跳过前两个匹配的文档,然后返回接下来的两个文档

atguigu> db.myCollection.find({name://}).sort({age:-1}).limit(2).skip(2) [   {     _id: ObjectId("66a9b2597066bd635ba48cf1"),     name: '小狗',     age: 22,     gender: '女'   },   { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 } ] 

3、更新文档

3.1、更新({name:‘小羊’},{$set:{age:30,gender:‘女’}})匹配的文档

atguigu> db.myCollection.update({name:'小羊'},{$set:{age:30,gender:'女'}}) DeprecationWarning: Collection.update() is deprecated. Use updateOne, updateMany, or bulkWrite. {   acknowledged: true,   insertedId: null,   matchedCount: 1,   modifiedCount: 1,   upsertedCount: 0 } 

3.2、更新({age:23},{$set:{age:30}})匹配的文档

atguigu> db.myCollection.updateOne({age:23},{$set:{age:30}}) {   acknowledged: true,   insertedId: null,   matchedCount: 1,   modifiedCount: 1,   upsertedCount: 0 } 

3.3、更新({age:30},{$set:{age:23}})匹配的文档

atguigu> db.myCollection.updateMany({age:30},{$set:{age:23}}) {   acknowledged: true,   insertedId: null,   matchedCount: 3,   modifiedCount: 3,   upsertedCount: 0 } 

3.4、更新({name:/小/},{$set:{age:22}})匹配的文档

atguigu> db.myCollection.updateMany({name://},{$set:{age:22}}) {   acknowledged: true,   insertedId: null,   matchedCount: 6,   modifiedCount: 5,   upsertedCount: 0 } 

4、删除文档

4.1、删除age等于21的文档

atguigu> db.myCollection.remove({age:21}) DeprecationWarning: Collection.remove() is deprecated. Use deleteOne, deleteMany, findOneAndDelete, or bulkWrite. { acknowledged: true, deletedCount: 0 } 

4.2、查找第一个age字段值为22的文档,并将其删除

atguigu> db.myCollection.deleteOne({age:22}) { acknowledged: true, deletedCount: 1 } 

4.3、查找所有age字段值为22的文档,并将它们全部删除

atguigu> db.myCollection.deleteMany({age:22}) { acknowledged: true, deletedCount: 5 } 

在这里插入图片描述

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!