创建干净的 Vapor 项目(使用流利的)导致 MongoKitten 运行时错误

Creating clean Vapor project (using fluent) results in MongoKitten runtime error

我设法用 MongoDB 设置了 Vapor 并让它工作,但是如果我做一个新的干净项目,我从 MongoKitten 得到 运行time 错误。详细:

我有一个过时的 vapor 项目,从 2017 年 7 月 27 日起运行良好。 我现在在 2017 年 10 月 24 日做同样的项目。 当它第一次编译时,我收到以下警告(不知道是否与以下错误相关):

编译完成,当我 运行 项目时出现以下错误:

我只知道这是main.swift中的准备步骤造成的 e.g.这里:

config.preparations.append(User.self)

如果没有这一步,我不会收到任何 运行 时间错误(但与 mongodb 的流畅连接也无法正常工作)。

我的配置很简单:

这发生在 Swift 3.1.1 中,但同样发生在 Swift 4.0 中。环境是 Ubuntu 17.04.

我该如何解决这个问题?

MongoDB的$addFields阶段要求MongoDB3.4或更高(我们快3.6了,所以3.4是最新的发布)。我假设您的 运行 MongoDB 3.2 或更低。 Ubuntu 的官方 APT 存储库已经落后于官方 MongoDB 发布很长时间了。某些 ubuntu 版本仍将安装已弃用的 MongoDB.

2.6 版本

解决办法是安装官方最新的MongoDB服务器as described here.