【问题标题】:Does Mongoose $pop remove the element immediately or only after save?Mongoose $pop 是立即删除元素还是仅在保存后删除?
【发布时间】:2014-07-05 22:56:39
【问题描述】:

来自这些文档:http://mongoosejs.com/docs/api.html#types_array_MongooseArray-%24pop

如果我调用var popped = doc.array.$pop();,Mongoose 是立即从数据库文档中删除该值还是仅在保存后删除?如果我有几个连接,每个连接都调用 $pop(),在一个连接运行文档上的 save() 命令之前,它们会得到相同的值吗?

【问题讨论】:

    标签: node.js mongoose


    【解决方案1】:

    调用$pop 只会影响文档的本地副本,直到调用save。只有这样,数据库文档才会被更新。

    所以是的,如果您有多个连接,每个连接都调用 $pop,那么它们都可以获得相同的值,直到其中一个调用 save

    $pop 是一个非常笨拙的 API,除了琐碎的情况外。

    【讨论】:

    • 谢谢!有什么办法可以按照我的建议去做吗?只是快速保存?
    • @DanMandle 这确实是一个单独的问题,但您可能希望将findAndModify$pop 运算符一起使用(而不是Mongoose 方法)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    • 2014-04-24
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    相关资源
    最近更新 更多