MongoDB 命令
数据库操作
1 |
|
集合操作
1 |
|
增删改查
增
1 |
|
删
1 |
|
更新
db.test1000.update({name:"xiaowang"},{name:"xiaozhao"})
把name为xiaowang的数据替换为
{name:"xiaozhao"}
db.test1000.update({name:"xiaohong"},{$set:{name:"xiaozhang"}})
把name为xiaowang的数据name的值更新为xiaozhang
db.test1000.update({name:"xiaozhang"},{$set:{name:"xiaohong"}},{multi:true})
{multi:true}
达到更新多条的目的
查询
1 |
|
WHERE语句,条件操作:逻辑运算符(and、or)
1 |
|
WHERE语句,条件操作:比较运算符(大于、小于、等于)
操作 | 格式 | 范例 | RDBMS中的类似语句 |
---|---|---|---|
等于 | {<key>:<value>} | db.coll.find({“age”:”java”}).pretty() | where by = “java” |
小于 | {<key>:{$lt:<value>}} | db.coll.find({“age”:{$lt:50}}).pretty() | where age < 50 |
小于或等于 | {<key>:{$lte:<value>}} | db.coll.find({“age”:{$lte:50}}).pretty() | where age <= 50 |
大于 | {<key>:{$gt:<value>}} | db.coll.find({“age”:{$gt:50}}).pretty() | where age > 50 |
大于或等于 | {<key>:{$gte:<value>}} | db.coll.find({“age”:{$gte:50}}).pretty() | where age >= 50 |
不等于 | {<key>:{$ne:<value>}} | db.coll.find({“age”:{$ne:50}}).pretty() | where age != 50 |
WHERE语句,条件操作:范围运算符(in、not in)
1 |
|
limit()方法
如果需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数
语法格式:db.collection.find().limit(number)
注:如果没有指定limit()方法中的参数则显示集合中的所有数据
skip()方法
除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数
语法格式:db.collection.find().limit(number).skip(number)
注:skip()方法默认参数为0
sort()排序
在MongoDB中使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用1和-1来指定排序的方式,其中1为升序排列,而-1为降序排列
语法格式:db.collection.find().sort({KEY:1})
count()统计
语法格式:下面两个均可
db.collection.find({条件}).count()
db.collection.count({})
distinct()消除重复
语法格式:db.collection.distinct("gender",{age:{$gt:18}})
返回数组
mongodb的投影:选择返回结果的字段
语法格式:db.collection.find({条件},{name:1,_id:0})
_id
默认会显示,置为0不显示- 除了
_id
之外的其他字段,如果不显示,不写,不能写为0
$type操作符
$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果
MongoDB中可以使用的类型如下表所示:
类型 | 数字 | 备注 |
---|---|---|
Double | 1 | |
String | 2 | |
Object | 3 | |
Array | 4 | |
Binary data | 5 | |
Undefined | 6 | 已废弃 |
Object id | 7 | |
Boolean | 8 | |
Date | 9 | |
Null | 10 | |
Regular Expression | 11 | |
JavaScript | 12 | |
Symbol | 13 | |
JavaScript(with scope) | 14 | |
32-bit integer | 15 | |
Timestamp | 16 | |
64-bit integer | 17 | |
Min key | 18 | |
Max key | 255 | Query with -1 |
例:如果想获取”coll”集合中title为String的数据,可以使用以下命令:
db.coll.find({"title":{$type:2}})
或 db.coll.find({"title":{$type:'string'}})
聚合操作的分组和计数如何使用,如何修改输出数据的样式,如何匹配内容
分组
$group
db.collection.aggregate({$group:{_id:"$age",count:{$sum:1}}})
$group的注意点
$group
对应的字典中有几个键,结果中就有几个键- 分组依据需要放到
_id
后面 - 取不同的字段的值需要使用$,
$gender
,$age
- 取字典嵌套的字典中的值的时候
$_id.country
- 能够同时按照多个键进行分组
{$group:{_id:{country:"$country",province:"$province"}}}
- 结果是:
{_id:{country:"",province:""}
- 结果是:
修改输出数据的样式
$project
db.collection.aggregate( {$group:{_id:"$age",count:{$sum:1}}}, {$project:{_id:0,age:"$_id",count:1}} )
匹配内容
$match
db.collection.aggregate( {$match:{gender:true}, {$group:{_id:"$age",count:{$sum:1}}}, {$project:{_id:0,age:"$_id",count:1}} )
一些示例
1 |
|