文章目录

  • 一、添加数据
  • 创建一个库
  • 获取当前库

  • 普通数据添加
  • 多维数据对象添加
  • 数组信息添加
  • 二、查询数据
  • 笼统方式查询
  • 条件限制查询
  • 范围条件查询
  • 多个条件查询
  • 多维字段查询
  • 数组条件查询
  • 限制查询字段
  • $or查询
  • count 语法
  • limit语法 skip语法
  • 三、修改数据
  • 有$set的修改
  • 没有$set的修改
  • 四、删除数据
  • 删除记录

  • 删除字段


一、添加数据

mongodb里存储数据的格式文档形式,以bson格式的文档形式。

在mongodb中,可有无需创建数据库和集合,使用的时候会自动创建

创建一个库

> use goods
#使用切换库

获取当前库

> db.getName()

语法:

db.集合名称.insert(bson格式数据)

普通数据添加

db.goods.insert({name:'huawei01',price:1000,weight:135,number:35})

多维数据对象添加

db.goods.insert({area:{province:'beijing',city:'beijing'}})

数组信息添加

db.goods.insert({color:['black','white','red']})

二、查询数据

语法:db.集合名称.find(查询条件)

findOne(查询条件)

笼统方式查询

不进行条件限制,全部取出来。

findOne会取出符合结果的第一条信息,并且以格式化形式返回

db.goods.find()
db.goods.findOne()

条件限制查询

条件格式,所见及所得

db.goods.find({name:'xiaomimax'})
db.goods.findOne({name:'xiaomimax'})

范围条件查询

mysql < <= > >= !=

mongo $lt $lte $gt $gte $ne

db.goods.find({price:{'$lte':1999}})
db.goods.find({price:{'$lt':1999}})

多个条件查询

类似mysql中的AND语法

db.goods.find({price:{'$lte':1999},number:{'$gte':40}})

多维字段查询

通过多维字段的值进行查询
注意:多维字段需要用引号包含起来

db.goods.find({'area.city':'zhengzhou'});

数组条件查询

①查询满足其中之一即可显示

db.goods.find({color:'black'})

②满足查询条件所有的才可显示

db.集合名称.find({字段(数组):{‘$all’:[v1,v2]}})

db.goods.insert({name:'iphonex',price:8398,weight:100,number:200,area:{province:'jiangsu',city:'nanjing'},color:['gray','black','white','gold']})

db.goods.find({color:{'$all':['black','gold']}})

限制查询字段

在实际使用环境,不需要查询并显示太多的字段。可以选择设定显示。

语法:db.集合名称.find({查询条件},{筛选条件})

显示为1,不显示为0 要是1都是1,要是0都是0 _id除外

db.goods.find({color:{'$all':['black','gold']}},{name:1,_id:0})

$or查询

满足其中之一的条件就可以显示,类似mysql的中的or条件语法

select * from goods where price > 5000 or number >= 100

db.goods.find({'$or':[{price:{'$gt':5000}},{number:{'$gte':100}}]})

count 语法

返回结果的数量统计

链式操作

db.goods.count()
db.goods.find({price:{'$gt':5000}}).count()
db.goods.count({price:{'$gt':5000}})

limit语法 skip语法

类似于mysql中的limit(skip,length)语法

limit() 取几个

skip() 跳过几个

db.goods.find().limit(1);
db.goods.find().skip(1).limit(1);

三、修改数据

语法:db.集合名称.update({查询条件},{修改条件})

updateOne() 修改匹配的第一条

updateMany() 修改匹配所有条

有$set的修改

db.goods.update({name:'iphonex'},{'$set':{price:8500}})

没有$set的修改

没有$set关键字语法,把设置的字段进行修改,没有设置的就会被删除掉

db.goods.update({name:'iphonex'},{price:8550})

四、删除数据

删除记录

语法: db.集合名称.remove({查询条件})

deleteOne() 删除匹配的第一条

deleteMany() 删除匹配的多条

db.goods.remove({price:8550})

db.goods.deleteMany({price:{'$lte':2000}})

删除字段

可以删除某个字段的操作,使用的是update语法的$unset

db.goods.update({name:'huawei01'},{'$unset':{weight:0}})