Я пытаюсь создать сценарий bash, который находит максимальное значение в следующей коллекции.
{ "_id" : ObjectId("5eaf83d1f803806404796611"), "livres" : "poeme", "ts" : ISODate("2020-05-04T02:54:09.668Z"), "val" : { "pages" : 30 } }
{ "_id" : ObjectId("5eaf83eff803806404796612"), "livres" : "poeme", "ts" : ISODate("2020-05-04T02:54:39.670Z"), "val" : { "pages" : 50 } }
{ "_id" : ObjectId("5eaf840df803806404796613"), "livres" : "histoire", "ts" : ISODate("2020-05-04T02:55:09.673Z"), "val" : { "pages" : 70 } }
{ "_id" : ObjectId("5eaf842bf803806404796614"), "livres" : "poeme", "ts" : ISODate("2020-05-04T02:55:39.675Z"), "val" : { "pages" : 0 } }
{ "_id" : ObjectId("5eaf8449f803806404796615"), "livres" : "histoire", "ts" : ISODate("2020-05-04T02:56:09.673Z"), "val" : { "pages" : 10 } }
{ "_id" : ObjectId("5eaf8467f803806404796616"), "livres" : "poeme", "ts" : ISODate("2020-05-04T02:56:39.675Z"), "val" : { "pages" : 50 } }
{ "_id" : ObjectId("5eaf8485f803806404796617"), "livres" : "poeme", "ts" : ISODate("2020-05-04T02:57:09.675Z"), "val" : { "pages" : 20 } }
Следующий запрос прекрасно работает в пн go cli:
db.livres_data.aggregate([{"$match": {"livres": "poeme"}},{"$group": {"_id": null,"MA": {"$max": "$val"}}}])
возвращает:
{ "_id" : null, "MA" : { "pages" : 50 } }
Когда я перенес этот запрос в скрипт bash, как показано ниже:
\#!/bin/bash
mongo myDB_name --eval "printjson(db.livres_data.aggregate([{'$match': {'livres': '$1'}},{'$group': {'_id': null,'MA': {'$max': 'val'}}}]))"
и выполнил его как: script_name. sh poeme
Я получил следующую ошибку:
MongoDB shell version v4.2.3
connecting to: mongodb://127.0.0.1:27017/myDB_name?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("d7fa1320-6f51-4836-829d-50b823f5f007") }
MongoDB server version: 4.2.0
2020-05-04T08:38:50.399+0000 E QUERY [js] uncaught exception: Error: command failed: {
"ok" : 0,
"errmsg" : **"Unrecognized pipeline stage name: ''",**
"code" : 40324,
"codeName" : "Location40324"
} : aggregate failed :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
doassert@src/mongo/shell/assert.js:18:14
_assertCommandWorked@src/mongo/shell/assert.js:583:17
assert.commandWorked@src/mongo/shell/assert.js:673:16
DB.prototype._runAggregate@src/mongo/shell/db.js:266:5
DBCollection.prototype.aggregate@src/mongo/shell /collection.js:1012:12
@(shell eval):1:11
2020-05-04T08:38:50.399+0000 E - [main] exiting with code -4
Любая помощь приветствуется. Большое спасибо.