0

这可能是一个小众问题,因为 Stitch 相当新,但无论如何我都会尝试!

我有一个 Stitch 应用程序,在底层 Atlas 集群上启用了 MongoDB Connection String 选项。

尝试在我的代码中运行此行时

const r = await collection.findOneAndDelete(filter);

我收到以下错误:

MongoError: unknown command findAndModify
    at Connection.<anonymous> (node_modules/mongodb-core/lib/connection/pool.js:443:61)
    at processMessage (node_modules/mongodb-core/lib/connection/connection.js:364:10)
    at TLSSocket.<anonymous> (node_modules/mongodb-core/lib/connection/connection.js:533:15)

但是,如果我直接连接到底层的 Atlas 集群,同样的代码可以正常工作。

我正在为 NodeJS 版本 3.2.7 使用 MongoDB 驱动程序

有没有人遇到过这种情况,或者可以以其他方式阐明一些信息?

4

1 回答 1

0

Stitch 应用程序,启用了 MongoDB 连接字符串选项

目前没有公开findAndModify来自Stitch Connection String (Wire Protocol ) 的操作。

在这种情况下发生的情况是 MongoDB Node.JS 驱动程序 v3.2重写findOneAndXXX了 操作并使用findAndModify命令,但是 Stitch 后端(尚未)公开/支持该命令。

2019 年 3 月,MongoDB Stitch SDK 支持 db.collection.findAndXXX() 函数。您可以使用三个用于 Stitch 的官方 Javascript/TypeScript SDK:

例如,您可以利用mongodb-stitch-server-sdk(通过 Node.JS)调用findOneAndDelete()

或者,正如您所发现的,您可以直接连接到 Atlas 集群并使用 MongoDB Node.JS 驱动程序findOneAndDelete

于 2019-09-03T04:21:11.237 回答