Mongodb 如何在aws中将mongo db版本4.20降级为3.6?

Mongodb 如何在aws中将mongo db版本4.20降级为3.6?,mongodb,docker,mongoose,dockerfile,Mongodb,Docker,Mongoose,Dockerfile,我在保存时遇到以下错误, “未知修饰符:$pushAll。应为指定为数组的有效更新修饰符或管道样式更新” 我问专家,他们建议降低MongoDB的版本。 我当前的版本是v4.2,需要更改为v3.4 我已尝试执行以下命令,但出现错误 db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } ) 错误: { "ok" : 0, "errmsg" : "Invalid command argument. Expected '4

我在保存时遇到以下错误, “未知修饰符:$pushAll。应为指定为数组的有效更新修饰符或管道样式更新” 我问专家,他们建议降低MongoDB的版本。 我当前的版本是v4.2,需要更改为v3.4

我已尝试执行以下命令,但出现错误

db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )
错误:

{
    "ok" : 0,
    "errmsg" : "Invalid command argument. Expected '4.2' or '4.0', found 3.6 in: { setFeatureCompatibilityVersion: \"3.6\", lsid: { id: UUID(\"b146274a-8229-4e16-aec6-bfd13bebca83\") }, $db: \"admin\" }. See http://dochub.mongodb.org/core/4.0-feature-compatibility.",
    "code" : 2,
    "codeName" : "BadValue"
}
请帮助我解决此问题。

根据以下说明:

MongoDB 3.6删除了不推荐使用的$pushAll操作符。自2.4以来,该运算符已被弃用

使用$push操作符和$each修饰符代替$pushAll

引用的例子是:

db.students.update(
   { name: "joe" },
   { $push: { scores: { $each: [ 90, 92, 85 ] } } }
)
也就是说,解决此问题的最佳方法是将代码中的
$pushAll
替换为示例中的表单。他们都做同样的事情,所以这是一个直接的替代品

如果你不能修改代码,那么它就更复杂了。不支持在多个主要版本之间降级。从4.2.0开始,您可以降级到4.0,但不能降级到3.4(3个主要版本落后)

由于无法从4.2.0降级到3.4,因此需要转储数据库的当前内容,安装3.4,然后恢复数据。话虽如此,降级以适应删除的功能从来都不是一个好主意

请注意,MongoDB 3.4系列将不再受支持,因此安装3.4不是一个好的长期解决方案