mongoDB shell命令
首先申明以下命令是针对mongo 3.4.3版本的,对于高版本的未必可执行,谨供参考!
mongo命令端登陆:
1、不需要auth认证登陆
$mongoDB_hone/bin/mongo 10.43.1.9:6330
2、需要auth认证【带有用户名和密码】
$mongoDB_hone/mongo --port 6330 -u 'user_name' -p 'password' --authenticationDatabase 'database_name' --host mongo_ip
查询命令
1、查看集合:show dbs
2、选择集合:use database_name
3、查看数据
db.table_name.find()
db.table_name.find().limit(5)
3.1、条件匹配 【.pretty() 表示标准输出】如图
单个条件:create_time = 2020-07-02
db.cb_data_order.find( {"create_time":"2020-07-02"} ).pretty()
多个 条件 and:create_time = 2020-07-02 and status = 3
db.table_name.find( {"create_time":"2020-07-02"},{"status":"3"} ).pretty()
多个 条件 or:create_time = 2020-07-02 or create_time = 2020-07-03
db.cb_data_order.find( {$or:[{"create_time":"2020-07-02"},{"create_time":"2020-07-03"}]} ).pretty()
3.2、范围查询
create_time <= "2020-07-02" 【lte:小于等于 lt:小于】
db.cb_data_order.find( {"create_time":{"$lte":"2020-07-02"}} ).pretty()
create_time >= "2020-07-02" 【gte:大于等于 gt:大于】
db.cb_data_order.find( {"create_time":{"$gte":"2020-07-02"}} ).pretty()
create_time >= "2020-07-02" and create_time <= "2020-07-03" 【or 的命令情况类似】
db.cb_data_order.find( {$and:[{"create_time":{$gte:"2020-07-02"}},{"create_time":{$lte:"2020-07-03"}}]} ).pretty()
3.3、聚合查询
计数统计
db.cb_data_order.find().count() // 全量统计
// 条件统计
db.cb_data_order.find( {"create_time":{$lt:"2020-07-02"}} ).count()
聚合统计【条件大于2020-07-02 小于2020-07-21,并order_status = 3,以trade_channel 分组统计money总和:total,以及数量:count】
db.cb_data_order.aggregate( [ {$match:{$and:[{"create_time":{$gt:"2020-07-02",$lt:"2020-07-21"}},{"order_status":"3"}]}}, { $group: { _id: "$trade_channel", total: {$sum: "$money"}, count: {$sum: 1} } } ] )
4、更新
修改【order】记录中【value字段】的值为ON
db.order.update({param: "billingLogSwitch"}, {$set: {value: 'ON'}}, false, true)
· 5、查询指定字段
-- 只输出id和title字段,第一个参数为查询条件,空代表查询所有 db.news.find( {}, { id: 1, title: 1 } ) -- 如果需要输出的字段比较多,不想要某个字段,可以用排除字段的方法,不输出内容字段,其它字段都输出 db.news.find( {}, {content: 0 } )
更多的可以看下菜鸟教程的文档,很有参考价值:https://www.runoob.com/mongodb/mongodb-tutorial.html