阅读量: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 }