MongoDB数据库的增删改查及基本操作

本文详细介绍了MongoDB的基本操作,包括如何创建和选择数据库、查看集合、插入、删除、更新和查询数据。通过实例演示了CRUD操作,如insertOne、insertMany、deleteOne、deleteMany、update以及find方法,帮助读者掌握MongoDB的数据管理技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在mongodb的增删改查之前先简单列表一些数据库的基本操作,如下:

  • win+R调出“运行”,再输入“cmd”进入终端,最后输入“mongo”进入到mongodb环境即可进行各种数据库操作(前提是mangodb已安装好且是可用状态)
  • 查看数据库:show dbs
  • 查看当前操作的数据库:db 或者 db.getName()
  • 选择要操作的数据库:use jdzb(use + 数据库名)
  • 查看集合:show collections
  • 查看集合中的信息:db.COLLECTIONNAME/集合名称.find()

实际效果如下各图:

进入mongodb环境:mongo

查看所有数据库:show dbs 

 查看当前操作的数据库:db  或    db.getName( )

 其余的就不一一展示了,大家可以自己去尝试哈!

(1)创建数据库

  • use 要创建的库名  如:use test (若已有,则默认使用;没有则创建)
  • 添加数据才会创建成功:db.COLLECTION.insert(),其中id索引会自动递增

(2)选中已存在的数据库进行操作

  • 选中数据库:use name
  • 删除数据库:db.dropDatabase()
  • 创建集合:db.createCollection(“集合名”)
  • 删除集合:db.集合名.drop()

增删改查(CRUD)

  • 增:

(以下出现的inventory只是一个示范的集合名,根据自己集合名做修改即可)

 插入单条数据:

db.collection.insertOne(  
        { item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)

插入多条数据:

db.collection.insertMany([
        { item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } }, 
        { item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
        { item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
    ])
  • 删:

 删除单条数据:

db.collection.deleteOne(
   <filter>,   // 过滤条件
   {
      writeConcern: <document>,
      collation: <document>,
      hint: <document|string>        // Available starting in MongoDB 4.4
   }
)

删除多条数据:

db.collection.deleteMany(
   <filter>,
   {
      writeConcern: <document>,
      collation: <document>
   }
)

实例:

下面的实例删除状态为“D”的第一个文档:

db.inventory.deleteOne( { status: "D" } )

以下实例从状态字段等于“A”的inventory集合中删除所有文档:

db.inventory.deleteMany({ status : "A" })

其中删除还有remove方法,大家有兴趣的话可以自己去官方了解一下,下面只做简单介绍: 

 db.COLLECTIONNAME.remove({条件}{配置项/可选})

配置项:justOne:true

没有配置项,就删除所有符合条件的

有配置项,就删除一项

  • 改:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。

实例

先插入一条数据如下:

>db.col.insert({
    title: '我是一条数据', 
    description: '我是即将被修改的一条小数据',
    by: '小粗腿Cc',
    url: 'https://blog.youkuaiyun.com/weixin_45249263?spm=1000.2115.3001.5343',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})

接着我们通过 update() 方法来更新标题(title):

>db.col.update({'title':'我是一条数据'},{$set:{'title':'改你改你'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })   # 输出信息
> db.col.find().pretty()
{
        "_id" : ObjectId("56064f89ade2f21f36b03136"),
        "title" : "改你改你",
        "description" : "我是即将被修改的小数据",
        "by" : "小粗腿Cc",
        "url" : "https://blog.youkuaiyun.com/weixin_45249263?spm=1000.2115.3001.5343",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}
>

可以看到标题(title)由原来的 "我是一条数据" 更新为了 "改你改你"。

以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true

>db.col.update({'title':'我是一条数据'},{$set:{'title':'改你改你'}},{multi:true})
  • 查:

 数据库中常用的操作应该就是查询数据啦,难免因为需求不的通过就需要用到各种各样的查询条件,从而得到想要的数据。

查询所有:

db.collection.find()

下面的实例返回inventory集合中status等于"D"的所有文档:

db.inventory.find( { status: "D" } )

下面的案例返回inventory集合中status等于"A""D"的所有文档。

db.inventory.find( { status: { $in: [ "A", "D" ] } } )

下面的案例返回inventory集合中status等于"A" 并且qty小于($lt)30的所有文档:

db.inventory.find( { status: "A", qty: { $lt: 30 } } )

下面的案例返回inventory集合中status等于"A" 或者qty小于($lt)30的所有文档。

db.inventory.find( { $or: [ { status: "A" }, { qty: { $lt: 30 } } ] } )

下面的案例返回inventory集合中status等于**"A" 并且qty小于 ($lt) 30或者item** 是以p字符开头的所有文档。

db.inventory.find( {
     status: "A",
     $or: [ { qty: { $lt: 30 } }, { item: /^p/ } ]
} )

其他的查询条件大家可以去文档中查询,在此就不一一列举啦!

MongoDB-cn 中文文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值