MongoDB 基础增删改查

MongoDB中文API

创建数据库

use DATABASE_NAME

eg: 创建test数据库

use test

如果数据库不存在则创建数据库,若存在则切换到该数据库。若数据库中没有数据,则不予显示。

删除数据库

切换到数据库,以test数据库为例子

use test
db.dropDatabase()

插入数据(集合)

一般我们在mongodb中是以集合为单位,一个集合就为一条数据。插入语句有两个方法,insert()和save(),区别在于insert只能用于插入,若insert()方法插入的集合id在数据库中已经有,则会抛出异org.springframework.dao.DuplicateKeyException提示主键重复,不保存当前数据。使用save()方法主要在于在插入集合之前会先去通过查询数据库中是否有相同的id,若有则是更新,若没有则会创建一个新的集合。

db.COLLECTION_NAME.insert(document)
db.COLLECTION_NAME.save(document)

eg: 插入一条数据(一个集合)

db.user.inster({firstname: 'Larry', 'lastname': 'Smith', age: 18, hobby: ['旅行', '美食']})
db.user.save({firstname: 'Larry', 'lastname': 'Smith', age: 18, hobby: ['旅行', '美食']})

还可以将需要插入的集合用一个变量保存起来,然后再使用插入方法进行插入。
eg: 使用变量方式插入

document = ({firstname: 'Larry', 'lastname': 'Smith', age: 18, hobby: ['旅行', '美食']});
db.user.insert(document)
db.user.save(document)

删除数据(集合)(mongodb > 2.6)

语法:

  • 删除该集合的所有数据
db.COLLECTION_NAME.remove({}) 
  • 条件删除
db.COLLECTION_NAME.remove(
  <query>, // 查询条件
  {
    justOne: <boolean> [true, 1] | [false, 0], // 是否只删除符合条件的第一条数据
    writeConcern: <document> // 异常信息
  }
)

eg: 删除test数据库user集合中firstname为齐天的所有集合

db.user.remove({firstname: '齐天'})

eg: 删除test数据库user集合中firstname为齐天的数据中第一个集合

db.user.remove({firstname: '齐天'}, true)

更新数据(集合)

语法:

db.COLLECTION_NAME.update(
  <query>, // 筛选条件
  <update>, // 更新操作
  {
    upsert: <boolean>, // 没有找到是否插入作为新的集合
    multi: <boolean>, // 是否多条修改
    writeConcern: <document> // 异常信息
  }
)

eg: 修改test数据库user集合中firstname为齐天的一条集合

db.user.update({firstname: '齐天'}, {$set: {firstname: '孙'}})

eg: 数据库中不存在该集合,插入该集合作为一个新的集合。

db.user.update({firstname: '二', lastname: '师兄'}, {$set: {firstname: '猪', lastname: '八戒'}}, true)

eg: 修改test数据库user集合中firstname为齐天的所有集合

db.user.update({firstname: '齐天'}, {$set: {firstname: '孙'}}, false, true)

查询

语法:

db.COLLECTION_NAME.find(
  <query>, // 查询条件
  <projection> // 使用投影操作符指定返回的键
)

eg: 查询test.user全部数据

db.test.user.find()

eg: 查询test.user中firstname为"齐天"的所有集合

db.test.find({firstname: '齐天'})

排序

sort()方法用于排序。将需要的字段作为参数,在给与属性1和-1分别表示升序和降序。
eg: 查询test.user中firstname为"齐天"的所有集合,按age字段降序显示

db.test.user.find({firstname: '齐天'}).sort({age: -1})

分页(limit, skip)

eg: 查询test.user前5条数据

db.test.user.find().limit(5)

eg: 查询test.user5条数据,跳过前5条

db.test.user.find().limit(5).skip(5)

操作符(附录)

  • (>) 大于 - $gt
  • (<) 小于 - $lt
  • (>=) 大于等于 - $gte
  • (<= ) 小于等于 - $lte
  • (or) 或者 - $or:[条件1, 条件2,…]
  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值