javascript 运行'db.命令(eval(命令字符串));“获取我的信息”MongoServer错误:未找到命令'

nx7onnlm  于 2023-03-11  发布在  Java
关注(0)|答案(1)|浏览(185)

我有一个JS应用程序,其中有一个mongodb驱动程序。连接到它之后,我尝试运行

const result = await db.command(eval(commandString));

以便从字符串运行不同类型的命令到我的数据库中,例如:

db.collection(“users”).updateOne(
  {
    name: “Rodrigo” 
  }, 
  { 
    $set: { 
      age: 24 
    } 
  }
)

当我触发时,查询在数据库中正确执行,文档更新,但Mongo服务器接收
服务器错误:未找到命令
我想摆脱这个错误消息,只想让查询成功执行。
我试过运行不同的命令,但它们都有相同的行为。

jmp7cifd

jmp7cifd1#

db.command()方法找不到您尝试执行的命令,因为它不是有效的MongoDB命令。仅供参考,MongoDB中的eval()方法已弃用。
从版本4.2开始,MongoDB删除了eval命令。 Package eval命令的已弃用的db.eval()只能在MongoDB 4.0或更早版本上运行。有关行为和示例,请参阅4.0或更早版本的手册。https://www.mongodb.com/docs/v4.2/reference/method/db.eval/
您应该使用MongoDB驱动程序为Node.js提供的适当方法:

const collection = db.collection('users');
const filter = { name: 'Rodrigo' };
const update = { $set: { age: 24 } };
const result = await collection.updateOne(filter, update);

相关问题