mongodb基本操作,常用增删改查

mongodb基本操作,常用增删改查

1.显式创建集合

db.createCollection(“users”)

db.createCollection("users")
{ ok: 1 }
rs0 [direct: primary]

2.隐式创建集合

db.users1.insert({name:“23123”})

db.users1.insert({name:"23123"})
'DeprecationWarning: Collection.insert() is deprecated. Use insertOne, insertMany or bulkWrite.'
{ acknowledged: true,
  insertedIds: { '0': ObjectId("60c023bc64f1792e535a7a48") } }
rs0 [direct: primary]

3.删除集合

db.users1.drop()

db.users1.drop()
true
rs0 [direct: primary]
4.查看集合

show collections

show collections
test
users
orders
rs0 [direct: primary]
5.新增记录
1-单个文档

语法格式:
db.<集合>.insert()
db.<集合>.insertOne()
db.<集合>.save()
示例:db.shop.insert({name:“家电”,price:4000})

db.shop.insert({name:"家电",price:4000})
{ acknowledged: true,
  insertedIds: { '0': ObjectId("60c024ed64f1792e535a7a49") } }
rs0 [direct: primary]

2-多个文档

语法格式 db.<集合>.insertMany([,…])
示例:db.shop.insertMany([{name:“手机”,price:3000},{name:“电脑”,price:6000},{name:“日用百货”,price:50}])

db.shop.insertMany([{name:"手机",price:3000},{name:"电脑",price:6000},{name:"日用百货",price:50}])
{ acknowledged: true,
  insertedIds: 
   { '0': ObjectId("60c0258a64f1792e535a7a4a"),
     '1': ObjectId("60c0258a64f1792e535a7a4b"),
     '2': ObjectId("60c0258a64f1792e535a7a4c") } }
rs0 [direct: primary]

6.通用查询语法格式

常用参数
在这里插入图片描述

db.find(,[projection]) 说明:
query:可选,查询筛选器,JSON对象.
projection:可选,结果字段
例:

db.shop.find() //查询所有
db.shop.find()
{ _id: ObjectId("60c024ed64f1792e535a7a49"),
  name: '家电',
  price: 4000 }
{ _id: ObjectId("60c0258a64f1792e535a7a4a"),
  name: '手机',
  price: 3000 }
{ _id: ObjectId("60c0258a64f1792e535a7a4b"),
  name: '电脑',
  price: 6000 }
{ _id: ObjectId("60c0258a64f1792e535a7a4c"),
  name: '日用百货',
  price: 50 }
rs0 [direct: primary]
db.shop.find({“name”:“手机”}) //单条件查询
db.shop.find({"name":"手机"})
{ _id: ObjectId("60c0258a64f1792e535a7a4a"),
  name: '手机',
  price: 3000 }
rs0 [direct: primary]

db.shop.find({“name”:“手机”,“price”:3000}) //多条件查询,相当于 sql and查询
db.shop.find({"name":"手机","price":3000}) 
{ _id: ObjectId("60c0258a64f1792e535a7a4a"),
  name: '手机',
  price: 3000 }
rs0 [direct: primary]

db.shop.find({$and:[{“name”:“手机”},{“price”:3000}]}) //多条件查询,相当于 sql and查询
db.shop.find({$and:[{"name":"手机"},{"price":3000}]})
{ _id: ObjectId("60c0258a64f1792e535a7a4a"),
  name: '手机',
  price: 3000 }
rs0 [direct: primary]
db.shop.find({$or:[{“name”:“手机”},{“price”:4000}]})//多条件or查询,相当于sql or
db.shop.find({$or:[{"name":"手机"},{"price":4000}]})
{ _id: ObjectId("60c024ed64f1792e535a7a49"),
  name: '家电',
  price: 4000 }
{ _id: ObjectId("60c0258a64f1792e535a7a4a"),
  name: '手机',
  price: 3000 }
rs0 [direct: primary]

db.shop.find({“name”:/手/}) //正则表达式查询,包含手的
db.shop.find({"name":/手/})
{ _id: ObjectId("60c0258a64f1792e535a7a4a"),
  name: '手机',
  price: 3000 }
rs0 [direct: primary]
db.shop.find({“name”:/^手/}) //正则表达式查询,包含手开头的
db.shop.find({"name":/^手/})
{ _id: ObjectId("60c0258a64f1792e535a7a4a"),
  name: '手机',
  price: 3000 }
rs0 [direct: primary]
db.shop.find({“name”:/手^/}) //正则表达式查询,包含手结尾的
db.shop.find({"name":/手^/})
rs0 [direct: primary]

db.shop.find({a:{$gt:5000}}) //查询a字段大于5000
db.shop.find({a:{$gt:5000}})
rs0 [direct: primary]
db.shop.find({name:{$ne:‘王五’}}) //查询姓名不等于王五的
db.shop.find({name:{$ne:'王五'}})
rs0 [direct: primary]
搜索子文档,实现关联查询示例:

投影(projection)查询如果要查询结果返回部分字段,则需要使用投影查询(不显示所有字段,只显示指定的字段)。 id字段必须明确指出不返回,否则每次默认返回,示例:db.shop.find({},{“name”:1}) //0显示1不显示

--通过"name":1指定name字段不显示
db.shop.find({},{"name":1}) 
db.shop.insert({name:"电脑",category:{name:"联想",cpu:"i7"}}) 
db.shop.find({"category.name":"联想"})  
--搜索数组中的对象 
--插入数据
db.shop.insert([{name:"联想",cpu:["i5","i7"]},{name:"戴尔",cpu:["i3","i7"]}])
db.shop.find({cpu:"i5"})
db.shop.find({$or:[{cpu:"i5"},{cpu:"i3"}]}) 
--插入数据
db.shop.insert({name:"手机",brand:[{name:"华为",price:4000},{name:"小米",price:3000},{name:"苹果",price:8000}]})
db.shop.find({"brand.name":"华为"}) 
7.删除数据

db.remove()
示例:

db.shop.remove({name:"手机"}) //删除name=手机的记录
db.shop.remove({price:{$lte:3000}}) //删除price<=3000的记录数
db.shop.remove({})  //删除所有记录
8.更新数据

db.update
语法格式:db…update(<查询条件>,<更新字段>),其中条件和字段均为JSON对象
示例:

--插入待加工数据
db.shop.insert([{name:"iphone12",price:8000},{name:"p40",price:5000},{name:"p30"}])
--修改
db.shop.updateOne({name:"iphone12"},{$set:{price:7500}})    
db.shop.updateOne({name:"p30"},{$set:{price:3500}}) 

注意事项:db.update()同db.updateOne(),无论输入的条件匹配多少条记录,只更新第一条,使用db.updateMany(),输入条件匹配多少,就更新多少条update/updateOne/updateMany。

9.数组操作

p u s h 增 加 一 个 对 象 到 数 组 底 部 , push增加一个对象到数组底部, pushpushAll增加多个对象到数组底部 p o p 从 数 组 底 部 删 除 一 个 对 象 , pop从数组底部删除一个对象, poppull如果匹配指定的值,从数组中删除相应的对象, p u l l A l l 如 果 匹 配 任 意 的 值 , 从 数 据 中 删 除 相 应 的 对 象 , pullAll如果匹配任意的值,从数据中删除相应的对象, pullAlladdToSet如果不存在则增加一个到数组$set修改对象属性值 。
例:

  新增:
  db.shop.insert({name:"xiaomi",color:[1,2]})   
  修改数组:     
  db.shop.updateOne({name:"xiaomi"},{$push:{color:3}})  
  弹出
  db.shop.updateOne({name:"xiaomi"},{$pop: {color:1}})  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值