代码之家  ›  专栏  ›  技术社区  ›  Gregory Kontadakis

创建clean Vapor项目(使用fluent)会导致MongoKitten运行时错误

  •  0
  • Gregory Kontadakis  · 技术社区  · 7 年前

    我设法用MongoDB设置了Vapor并使其工作,但如果我做了一个新的clean项目,我会从MongoKitten得到运行时错误。具体内容:

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

    Warning Screenshot

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

    Error Screenshot

    我只知道这主要是由准备步骤引起的。swift例如:

    config.preparations.append(User.self)
    

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

    Config Screenshot

    这在Swift 3.1.1中发生,但在Swift 4.0中也会发生。环境是Ubuntu 17.04。

    我如何解决这个问题?

    1 回复  |  直到 7 年前
        1
  •  0
  •   JoannisO    7 年前

    MongoDB的 $addFields 要求 MongoDB 3.4或更高版本(我们几乎达到了3.6,所以3.4是最新版本)。我假设您运行的是MongoDB 3.2或更低版本。Ubuntu的官方APT存储库很长一段时间以来一直支持官方的MongoDB版本。一些ubuntu版本仍将安装已弃用的MongoDB 2.6版本。

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