# shortcut.
which mp
# =>
mp () {
mq=`s2m "$*"`
#echo "__mq: $mq"
mongo [ip]:[port]/[db] --quiet --eval "$mq.forEach(printjson)"
}
# base query
mp "select _id,nickname from user where _id in (100002,100003) order by _id desc limit 10"
# =>
{ "_id" : NumberLong(100003), "nickname" : "就是辣么帅 2323" }
{ "_id" : NumberLong(100002), "nickname" : "下江" }
# special limit
mp "select _id,nickname from user where _id in (100002,100003) order by _id desc limit 1,1"
# =>
{ "_id" : NumberLong(100002), "nickname" : "下江" }
# collaboration with other unix tool
mp "select _id,nickname from user where _id in (100002,100003) order by _id desc limit 10" | b2j | jq .nickname
# =>
"就是辣么帅 2323"
"下江"
1
gromit1337 2019-09-03 10:10:00 +08:00 1
很好奇 mongodb 在市场上使用多吗?
|
2
gz911122 2019-09-03 10:13:05 +08:00
@gromit1337 不算少
业务中总有些时候适合他 |
3
sadfQED2 2019-09-03 11:01:35 +08:00 via Android
以前我也这么觉得,但是用惯了以后,sql 什么鬼玩意,太难用了
|
4
otakustay 2019-09-03 12:01:46 +08:00
@gromit1337 自从 mongo 吃光了我 32G 内存后我就对这东西有心里阴影了
|
6
guxingke OP @sadfQED2 sql 大一统啊, mongo query 有点累.
> select name,gender from user where id > 100 and id < 10000 order by id desc limit 10. > db.user.find({$and: [{"id": {$lt: 100}},{"id": {"$gt":1000}}]}).sort({id:1}).limit(10) Sql 的声明式编程直观多了, 没有那么多没用的 .({ . |
7
Vegetable 2019-09-03 12:26:50 +08:00 1
单纯的 select 操作是 sql 简单,但是涉及到聚合,好像 mongo 的更直观一点,就是啰嗦
|
9
guxingke OP @sadfQED2 这个就无解了, 我主要是快速查一下, 能配合 管道 快速处理一下数据, 根本不写统计需求, group 压根没考虑
(主要是自己习惯在 shell 下快速验证一下东西, 又没有现成的) 真要做统计需求, 个人也不会在 mongo 这里做的, 一般会用 es . |
11
otakustay 2019-09-03 12:45:40 +08:00
如果用 sql 语句能检索 mongo,那 mongo 就只能是关系型数据,但如果只有关系型数据,为什么要用 mongo
|
12
onion83 2019-09-03 12:45:43 +08:00 1
|
13
guxingke OP @otakustay 这就是另外一个问题了, 为什么用 mongo , schemaless , 部署运维简单.
一个普通 3 节点, 基本可以扛到百万用户这个量级. 对于初创应用来讲, 很适合啊. 用 sql 是个人倾向, 提高开发效率罢了. |
14
menyakun 2019-09-03 15:03:28 +08:00
能转成 mongo 的 aggregation 不,我感觉这才是 mongo 用起来爽的
|
15
wellhome 2019-09-03 15:47:34 +08:00 via iPhone
楼主字体是什么
|
18
leon0903 2019-09-03 17:22:39 +08:00
studio 3T 好像就有 sql 写法操作 mongodb 的功能,不过是高级版才有。
|