亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

怎么在MongoDB中執行Javascript代碼

怎么在MongoDB中執行Javascript代碼

侃侃無極 2019-03-21 14:14:46
怎么在MongoDB中執行Javascript代碼
查看完整描述

2 回答

?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

以前并沒有留意用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'
>

如果想獲得epoch以來的毫秒數,必須用new Date()。
而Date(),似乎就只是一個函數,返回一個字符串而已。沒什么大作用,反而容易混淆人的概念。
b. Date對象提供了getTime()
2. 查詢語句中,可以用$where operator來執行JavaScript函數, 比如:
db.display.find({$and: [{$where: function() {return new Date().getTime(

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



查看完整回答
反對 回復 2019-03-24
?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

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'
>

如果想獲得epoch以來的毫秒數,必須用new Date()。
而Date(),似乎就只是一個函數,返回一個字符串而已。沒什么大作用,反而容易混淆人的概念。
b. Date對象提供了getTime()
2. 查詢語句中,可以用$where operator來執行JavaScript函數, 比如:
db.display.find({$and: [{$where: function() {return new Date().getTime(

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



查看完整回答
反對 回復 2019-03-24
  • 2 回答
  • 0 關注
  • 821 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號