尝试插入 Mongo DB 时,Elixir 项目中出现“不支持的 OP_QUERY 命令:插入”

Rad*_*amă 7 database elixir mongodb

我有一个 Mix 项目,我正在尝试将一些数据插入到我的本地数据库中。

我已将 Mongo 依赖项添加到我的项目中,然后添加用于连接数据库并将数据存储到其中的代码行。

{:ok, pid} =
  Mongo.start_link(
    url: "mongodb://localhost:27017/tweet_processor")
    
{:ok, result} =
  Mongo.insert_one(pid, "tweets", tweet_to_insert)
Run Code Online (Sandbox Code Playgroud)

但我不断得到

{:error, %Mongo.Error{
  code: 352,
  host: nil,
  message: "command failed: Unsupported OP_QUERY command: insert"}}
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?

Ale*_*kin 5

我疯狂猜测(以您\xe2\x80\x99共享的命令的形式)您正在使用mongodbpackage.json 。它明确声明它支持 MongoDB 版本 2.6\xc3\xb74.0。我还疯狂猜测您正在使用 MongoDB 5+ 后端,该后端已OP_QUERY 明确弃用.

\n

您使用的驱动程序是 OSS,从其源代码中,人们可能会看到Mongo.insert_one/4 委托低级调用,该调用发出OP_QUERY.

\n

解决该问题的一种可能性是将 MongoDB 降级到 v4.0,另一种(最受社区赞赏的)是向库提供 PR,支持 MongoDB 5+。

\n