当前位置:   article > 正文

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

mongodb 文档

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
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

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

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

1.3、查询文档

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

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

atguigu> db.myCollection.insertMany([{name:'小狗',age:22,gender:'女'},{name:'小猫',age:23,gender:'男'}])
{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("66a9b2597066bd635ba48cf1"),
    '1': ObjectId("66a9b2597066bd635ba48cf2")
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
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: '男'
  }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

2、查询文档

2.1、查询年龄等于20

atguigu> db.myCollection.find({age:20})
[ { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 } ]
  • 1
  • 2
atguigu> db.myCollection.insertMany([{name:'小牛',age:23,gender:'男'},{name:'小羊',age:20,gender:'男'}])
{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("66a9cf7d7066bd635ba48cf3"),
    '1': ObjectId("66a9cf7d7066bd635ba48cf4")
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
atguigu> db.myCollection.find({age:20})
[
  { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf4"),
    name: '小羊',
    age: 20,
    gender: '男'
  }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2.2、查询年龄是20的男性

atguigu> db.myCollection.find({age:20,gender:'男'})
[
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf4"),
    name: '小羊',
    age: 20,
    gender: '男'
  }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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: '男'
  }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

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: '男'
  }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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: '男'
  }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

2.6、查询大于等于23

atguigu> db.myCollection.find({age:{$gte:23}})
[
  {
    _id: ObjectId("66a9b2597066bd635ba48cf2"),
    name: '小猫',
    age: 23,
    gender: '男'
  },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf3"),
    name: '小牛',
    age: 23,
    gender: '男'
  }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

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: '男'
  }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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: '男'
  }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
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: '男'
  }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

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: '男'
  }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

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: '男'
  }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

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 }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

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

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 }
  • 1
  • 2
  • 3

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

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

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

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

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/1007834
推荐阅读
相关标签
  

闽ICP备14008679号