【问题标题】:Creating clean Vapor project (using fluent) results in MongoKitten runtime error创建干净的 Vapor 项目(使用 fluent)导致 MongoKitten 运行时错误
【发布时间】:2018-04-05 18:45:45
【问题描述】:

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

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

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

我只知道这是由 main.swift 中的准备步骤引起的,例如这里:

config.preparations.append(User.self)

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

我的配置很简单:

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

我该如何解决这个问题?

【问题讨论】:

    标签: swift mongodb fluent vapor mongokitten


    【解决方案1】:

    MongoDB 的$addFields 阶段需要 MongoDB 3.4 或更高版本(我们几乎是 3.6,所以 3.4 是最新版本)。我假设您正在运行 MongoDB 3.2 或更低版本。 Ubuntu 的官方 APT 存储库长期以来一直落后于官方 MongoDB 版本。一些 ubuntu 版本仍会安装已弃用的 2.6 版本的 MongoDB。

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

    【讨论】:

    • 这解决了这个问题。与此同时,我只使用了 MongoKitten 而不是 Fluent 抽象,这对我有用。您关于 MongoKitten 的教程(例如 CRUD 操作)和文章真的很有帮助。
    猜你喜欢
    • 1970-01-01
    • 2021-10-24
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多