Фатальная ошибка: вызов неопределенной функции агрегата ()

Я установил mongo на свой Mac, скопировав mongo.so как для 5.2, так и для 5.4. mongoCollection не имеет метода агрегирования!!!! Я проверил тот же php на своем aws, и он там работает

Я пробовал var_dump(get_class_methods('MongoCollection')); и на моем локальном:

array (size=24)
0 => string '__construct' (length=11)
1 => string '__toString' (length=10)
2 => string '__get' (length=5)
3 => string 'getName' (length=7)
4 => string 'getSlaveOkay' (length=12)
5 => string 'setSlaveOkay' (length=12)
6 => string 'drop' (length=4)
7 => string 'validate' (length=8)
8 => string 'insert' (length=6)
9 => string 'batchInsert' (length=11)
10 => string 'update' (length=6)
11 => string 'remove' (length=6)
12 => string 'find' (length=4)
13 => string 'findOne' (length=7)
14 => string 'ensureIndex' (length=11)
15 => string 'deleteIndex' (length=11)
16 => string 'deleteIndexes' (length=13)
17 => string 'getIndexInfo' (length=12)
18 => string 'count' (length=5)
19 => string 'save' (length=4)
20 => string 'createDBRef' (length=11)
21 => string 'getDBRef' (length=8)
22 => string 'group' (length=5)
23 => string 'distinct' (length=8)`

и на авс:

array(28) { [0]=> string(11) "__construct" [1]=> string(10) "__toString" [2]=> string(5) "__get" [3]=> string(7) "getName" [4]=> string(12) "getSlaveOkay" [5]=> string(12) "setSlaveOkay" [6]=> string(17) "getReadPreference" [7]=> string(17) "setReadPreference" [8]=> string(4) "drop" [9]=> string(8) "validate" [10]=> string(6) "insert" [11]=> string(11) "batchInsert" [12]=> string(6) "update" [13]=> string(6) "remove" [14]=> string(4) "find" [15]=> string(7) "findOne" [16]=> string(13) "findAndModify" [17]=> string(11) "ensureIndex" [18]=> string(11) "deleteIndex" [19]=> string(13) "deleteIndexes" [20]=> string(12) "getIndexInfo" [21]=> string(5) "count" [22]=> string(4) "save" [23]=> string(11) "createDBRef" [24]=> string(8) "getDBRef" [25]=> string(5) "group" [26]=> string(8) "distinct" [27]=> string(9) "aggregate" }

когда я использую агрегат на терминале (локальный), он работает

кажется очень странным, любая идея приветствуется.


person zarehb    schedule 10.03.2013    source источник


Ответы (1)


MongoCollection::aggregate (PECL mongo >=1.3.0)

Таким образом, вы используете версию драйвера >= 1.3.0 на aws и ‹ 1.3.0 на вашем Mac.

Обратите внимание, что агрегация появилась в версии 2.2 monogoDB.

person AD7six    schedule 10.03.2013
comment
я думаю, это о mongo.so, а не о самой установке mongo - person zarehb; 10.03.2013
comment
Я думаю, что могу жить с командой php на данный момент - person zarehb; 10.03.2013
comment
Обновление pecl mongo до версии, используемой на сервере, было бы более логичным завершением. - person AD7six; 10.03.2013
comment
не уверен, как я могу получить версию pecl mongo; также я могу обновить его или мне придется переустановить его, спасибо - person zarehb; 10.03.2013
comment
понятно ; это в разделе phpinfo() Mongo - person zarehb; 10.03.2013
comment
Я думаю, что мне нужно опубликовать это в отдельной теме, но я также вставляю это здесь; теперь есть еще одна проблема: aws 2.2.3, простой агрегат в оболочке mongo вызывает это {errmsg: нет такого cmd, ok: 0}, но он отлично работает на локальном компьютере; Есть идеи? - person zarehb; 10.03.2013
comment
звучит как несоответствие версии mongoDB. т.е. вы не используете mongo версии 2.2+ на aws. mongo --version или > version() вам расскажут - person AD7six; 10.03.2013
comment
вот что я получаю: mongo --version Версия оболочки MongoDB: 2.2.3 - person zarehb; 10.03.2013
comment
выложу больше, если выясню причину - person zarehb; 10.03.2013
comment
понял, версия db неверна на aws, не знаю почему; когда я запускаю mongod, он показывает версию базы данных v1.0.1; собираюсь переустановить - person zarehb; 10.03.2013