我有一个混合项目,我试图插入一些数据到我的本地数据库。
我在项目中添加了Mongo依赖项,然后添加了连接数据库和存储数据的代码行。
{:ok, pid} =
Mongo.start_link(
url: "mongodb://localhost:27017/tweet_processor")
{:ok, result} =
Mongo.insert_one(pid, "tweets", tweet_to_insert)
但我一直收到
{:error, %Mongo.Error{
code: 352,
host: nil,
message: "command failed: Unsupported OP_QUERY command: insert"}}
有什么问题吗?
4条答案
按热度按时间yptwkmov1#
我猜你使用的是
mongodb
包。它明确声明它支持MongoDB版本2.6÷4.0。我还猜你使用的是MongoDB 5+后端,它明确反对OP_QUERY
。您使用的驱动程序是OSS,从它的源代码中,您可能会看到
Mongo.insert_one/4
委托给发出OP_QUERY
的低级调用。解决这个问题的一种可能性是将MongoDB降级到v4.0,另一种(最受社区欢迎)是为库提供PR,支持MongoDB 5+。
bakd9h0s2#
您可以使用支持MongoDB 5.x的this driver
qoefvg9y3#
更新mongo-java-driver版本并重试
pu82cl6c4#
我得到了同样的错误。对我来说,这最终是Mongoose的问题。在将Mongoose升级到^6.5.2后,它可以正常工作。
使用NPM,你可以像这样更新包: