mongo的聚合語(yǔ)句在某些server和shell版本不匹配時(shí)會(huì)報(bào)錯(cuò)

1. 查看當(dāng)前服務(wù)器的mongo版本信息

2001 $ dpkg -l|grep mongo

ii? mongodb? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1:2.4.9-1ubuntu2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? amd64? ? ? ? object/document-oriented database (metapackage)

ii? mongodb-clients? ? ? ? ? ? ? ? ? ? ? ? ? 1:2.4.9-1ubuntu2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? amd64? ? ? ? object/document-oriented database (client apps)

ii? mongodb-dev? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1:2.4.9-1ubuntu2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? amd64? ? ? ? object/document-oriented database (development)

ii? mongodb-server? ? ? ? ? ? ? ? ? ? ? ? ? ? 1:2.4.9-1ubuntu2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? amd64? ? ? ? object/document-oriented database (server package)

2. 本地連接mongo服務(wù)器,mongo shell運(yùn)行聚合語(yǔ)句結(jié)果報(bào)錯(cuò)

> db.imp_20170503.aggregate([{$group : {_id : "$idfa", total : {$sum : 1}}}])

2017-07-07T10:47:11.952+0800 E QUERY? ? [thread1] TypeError: cmd.cursor is undefined :

DBCollection.prototype.aggregate@src/mongo/shell/collection.js:1322:1

@(shell):1:1

3. 在遠(yuǎn)程mongo服務(wù)器上,直接mongo shell運(yùn)行:

> db.imp_20170503.aggregate([{$group : {_id : "$idfa", total : {$sum : 1}}}])

{ "result" : [ { "_id" : "idfa", "total" : 11 } ], "ok" : 1 }

4. 發(fā)現(xiàn)被坑爹了! 遠(yuǎn)程服務(wù)器上可以 : MongoDB shell version: 2.4.9

本地shell不行 :

MongoDB shell version v3.4.2

connecting to: mongodb://127.0.0.1:27017

MongoDB server version: 2.4.9

WARNING: shell and server versions do not match

5. 上述顯示的"connecting to: mongodb://127.0.0.1:27017"是因?yàn)閟sh做的端口轉(zhuǎn)發(fā)到本地了。

6. 上述實(shí)踐證明,不是mongo版本低導(dǎo)致的。是server和mongo shell版本不匹配導(dǎo)致聚合執(zhí)行出錯(cuò)!

7. 奇葩的是,我在本地連接另一個(gè)版本的mongo服務(wù)器3.2.14(在yunip上),版本也是不匹配的,但是執(zhí)行完好:

mongo --port 37017

MongoDB shell version v3.4.2

connecting to: mongodb://127.0.0.1:37017/

MongoDB server version: 3.2.14

WARNING: shell and server versions do not match

> db.imp_20170503.aggregate([{$group : {_id : "$idfa", total : {$sum : 1}}}])

{ "_id" : "idfa", "total" : 11 }

-------------------------------------------------------------------------------------

yunip服務(wù)器上的信息如下,也將端口轉(zhuǎn)發(fā)到本地37017了。

2001 $ dpkg -l|grep mongo

ii? mongodb-org? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.2.14? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? amd64? ? ? ? MongoDB open source document-oriented database system (metapackage)

ii? mongodb-org-mongos? ? ? ? ? ? ? ? ? ? ? ? 3.2.14? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? amd64? ? ? ? MongoDB sharded cluster query router

ii? mongodb-org-server? ? ? ? ? ? ? ? ? ? ? ? 3.2.14? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? amd64? ? ? ? MongoDB database server

ii? mongodb-org-shell? ? ? ? ? ? ? ? ? ? ? ? 3.2.14? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? amd64? ? ? ? MongoDB shell client

ii? mongodb-org-tools? ? ? ? ? ? ? ? ? ? ? ? 3.2.14? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? amd64? ? ? ? MongoDB tools

rc? mongodb-server? ? ? ? ? ? ? ? ? ? ? ? ? ? 1:2.4.9-1ubuntu2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? amd64? ? ? ? object/document-oriented database (server package)

-------------------------------------------------------------------------------------

8. 真不能簡(jiǎn)單說(shuō)是mongo server和shell版本不匹配導(dǎo)致的,但至少有關(guān)系。只是生產(chǎn)中的mongo服務(wù)器要測(cè)試聚合語(yǔ)句,只能在那臺(tái)服務(wù)器上測(cè)試了!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容