mongodb查询 - 笔记

# mongodb 查询语句

mongodb :分布式文件存储数据库,介于关系数据库和非关系数据库之间,概念:collection(table),document(row),field(column)

TYCHtml数据库:
## 1、查询document数量

​ db.getCollection('companys').find({}).count()

## 2、find()

db.getCollection('companys').find({"_id":ObjectId("59c12543e1382308c4e0f786")})

​ = select * from companys where _id="59c12542e1382308c4e0f262"

db.getCollection('companys').find({},{"summary":1})

​ =select summary from companys

内嵌文档查询:
db.getCollection('companys').find({"summary.reportCount":4}).limit(1)
db.getCollection('companys').find({"staffCount":{$elemMatch:{"position":"监事","name":"宋家林"}}}).limit(1)
db.getCollection('companys').find({"summary.reportCount":4,"summary.checkCount":1}).limit(1)
MongoDB提供了一组比较操作符:

| $lt | < |
| :--: | :--: |
| $lte | <= |
| $gt | > |
| $gte | >= |
| $ne | != |

删除数据库:db.dropDatabase()

查看所有数据库:show dbs

创建数据库:use runoob

插入文档:db.COLLECTION_NAME(document)

更新文档:db.collection.update()

使用$elemMatch操作符查询

模糊查询 $regex

mongodb 更新有两个命令:update\save
数据更新操作符:
$inc:
用法:{$inc:{field:value}}
作用:对一个数字字段的某个field增加value
例:{ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "name" : "chenzhou", "age" : 22}
将name为chenzhou的学生age增加5
db.students.update({"name":"chenzhou"},{$inc:{"age":5}})
$set:
用法:{$set:{field:value}}
作用:把文档中某个字段field的值设为value
$unset:
用法:{$unset:{field:1}}
作用:删除某个字段field
例:
db.students.update({"name":"chenzhou"},{$unset:{"age":1}})
$push:
用法:{$push:{field:value}}
作用:把value追加到field中,(field只能是数组类型,如果field不存在,自动插入一个数组类型)
$pushAll:
用法:{$pushAll:{field:value_array}}
作用:用法同$push一样,只是$pushAll可以一次追加多个值到一个数组字段内
$addToSet:
用法:{$addToSet:{field:value}}
作用:加一个值到数组内,而且只有当这个值在数组中不存在时才增加。
$pop:
用法:删除数组内第一个值:{$pop:{field:-1}}、删除数组内最后一个值:{$pop:{field:1}}
作用:用于删除数组内的一个值
$pull:
用法:{$pull:{field:_value}}
作用:从数组field内删除一个等于_value的值
$pullAll:
用法:{$pullAll:value_array}
作用:用法同$pull一样,可以一次性删除数组内的多个值
$rename:
用法:{$rename:{old_field_name:new_field_name}}
作用:对字段进行重命名

posted on 2017-10-26 18:05  YMAY  阅读(177)  评论(0编辑  收藏  举报

导航