MongoDB查询中可以运行JavaScript
以前并没有留意用JavaScript管理MongoDB,不过这个还是很有用的功能。特别是可以写一些定时脚本,定期检查数据库,做一些管理任务。
1. mongo shell中可以直接运行JavaScript代码
比如:
> new Date()ISODate("2013-12-12T07:37:00.074Z")> x = new Date();ISODate("2013-12-12T07:37:05.724Z")> x.getTime();1386833825724> var y = Date();> y.getTime()Thu Dec 12 15:37:26.805 TypeError: Object Thu Dec 12 2013 15:37:21 GMT+0800 (CST) has no method 'getTime'>
a. new Date() 和 Date()不是一回事,参考
http://stackoverflow.com/questions/3505693/difference-between-datedatestring-and-new-datedatestring
如果想获得epoch以来的毫秒数,必须用new Date()。
而Date(),似乎就只是一个函数,返回一个字符串而已。没什么大作用,反而容易混淆人的概念。
b. Date对象提供了getTime()
2. 查询语句中,可以用$where operator来执行JavaScript函数, 比如:
db.display.find({$and: [{$where: function() {return new Date().getTime() / 1000 - this.last_active_time > 300}}, {status: "offline"}]})$where参考文档:http://docs.mongodb.org/manual/reference/operator/query/where/
3. 可以将代码写到一个js文件中,然后用mongo命令执行
比如:下面将当前时间和last_active_time字段的值的差大于300秒的,状态为offline的document找出来,并显示。
cursor = db.display.find({$and: [{$where: function() {return new Date().getTime() / 1000 - this.last_active_time > 300}}, {status: "offline"}]})while (cursor.hasNext()) { printjson(cursor.next());}然后这样执行:
mongo localhost/mydb test.js
>更多相关文章
- 10-26如何快速熟悉阿里云新一代PolarDB数据库
- 12-22ORACLE 迁移到 DB2:如何把 Oracle partition 转化到 DB2
- 12-21DB2增差量备份恢复详尽演练
- 12-20DB2在线备份的恢复
- 12-20MongoDB:mongodb的安装和增删改查入门
- 12-20DB2环境变量与参数的备份
- 12-20DB2利用表空间备份重建数据库
- 12-20MongoDB:好好说说mogodb的增删改查
首页推荐
佛山市东联科技有限公司一直秉承“一切以用户价值为依归
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 12-05亚马逊推出新一代基础模型 任意模态生成大模
- 12-05OpenAI拓展欧洲业务 将在苏黎世设立办公室
- 12-05微软质疑美国联邦贸易委员会泄露信息 督促其
- 12-05联交所取消宝宝树上市地位 宝宝树:不会对公
- 12-04企业微信致歉:文档打开异常已完成修复
相关文章
24小时热门资讯
24小时回复排行
热门推荐
最新资讯
操作系统
黑客防御