【问题标题】:guarantee MongoDB update operation is successful保证MongoDB更新操作成功
【发布时间】:2016-12-24 00:21:26
【问题描述】:

也许是一个愚蠢的问题,如何保证您的更新操作成功? 我就是这样做的,但是返回的“结果”是“假的”。

import { Mongo } from "meteor/mongo";
const Employees = new  Mongo.Collection("Employees");

const result = Employees.update({_id: employeeId}, {$push: {tasks: taskId}});
console.log(result); // "false"

谢谢

德里克

【问题讨论】:

  • 你是在客户端还是在服务器上做的?在服务器上,您可以获得受影响文档的数量。在客户端上,您不会同步获得结果。
  • @MasterAM 那么在服务器端,它是同步工作的,而在客户端,它是异步工​​作的?
  • 在服务器端,它使用纤程让你编写看似同步的代码(它封装了异步原生 Mongo 函数),在客户端它模拟 MiniMongo 中的动作并调用自动生成的方法服务器。这些请求是异步的,在方法返回响应之前,客户端无法真正知道结果。

标签: mongodb meteor meteor-collections


【解决方案1】:

一切都取决于你认为什么是成功的?如果您查看WriteConcern,您可以获得确认结果、写入日志或写入集群的多个节点。这完全取决于您的应用程序以及它如何处理故障。

至于获取受影响的行数,您可以使用更新方法上的回调(参见API documentation

回调函数

可选。如果存在,则以错误对象作为第一个参数调用,如果没有错误,则以受影响文档的数量作为第二个参数。

【讨论】:

    猜你喜欢
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 2019-03-16
    相关资源
    最近更新 更多