【发布时间】:2019-09-04 14:43:34
【问题描述】:
这可能是一个小众问题,因为 Stitch 相当新,但我还是会尝试!
我有一个 Stitch 应用,在底层 Atlas 集群上启用了 MongoDB 连接字符串选项。
当试图在我的代码中运行这一行时
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 驱动程序
有没有人遇到过这种情况,或者可以提供一些启示?
【问题讨论】:
-
如果我没记错的话,
findAndModify是一个旧命令,已被updateMany取代。我相信findOneAndDelete被removeOne取代。 -
使用 deleteOne 有效,但它不会返回已删除的 id,因此不太一样。似乎 MongoDB 有线协议的 Stitch 实现出现了问题,因为 findOne 还返回一条错误消息:错误将 OP_MSG 处理为 CRUD 请求:无效的查找命令:不支持查找命令中的“batchSize”字段。我不是第一个通过 batchSize :)
标签: mongodb mongodb-atlas mongodb-stitch