【问题标题】:mongodb dot notation with $pop带有 $pop 的 mongodb 点表示法
【发布时间】:2018-01-27 06:50:48
【问题描述】:

使用 MongoDB,(网络控制台可用 here)我有一些数据:

db.foo.insert({
    item: "stuff", 
    qty: 17,
    test: {
        bob: 1,
        alice: 2,
        candice: 3,
        myarray: ["a","b","c","d"]
    }
})

如何从 myarray 中弹出?

我试过了:

db.foo.update(
    {'test.bob':1},
    { $pop: {'test.myarray': -1}}
)

和:

db.foo.update(
    {'test.bob': 1},
    { $pop: {'test': {'myarray': -1}}}
)

我知道查询部分是正确的,只是不是 $pop 部分,因为以下返回正确的结果:

db.foo.find(
    {'test.bob': 1}
)

我研究了$popdot-notationrandom question 我发现没有任何响应,甚至还有一个 github commit 显示了我正在尝试做的工作示例(尽管有$pull 而不是第 357 行的 $pop)。我不断收到的错误代码是:

SyntaxError: 无效的属性 id @(shell):3:6

【问题讨论】:

    标签: javascript mongodb meteor


    【解决方案1】:

    事实证明问题中列出的代码确实有效:我使用的是旧版本的 MongoDB,可能未添加该功能。另一位发帖人提到了这一点,但由于某种原因,答案消失了。

    供参考,使用db.version()获取版本 发这篇文章时在jdoodle 上运行的版本是 3.2.4,这不是 Mongo 的当前版本(发这篇文章时是 3.6)。

    【讨论】:

      猜你喜欢
      • 2011-01-23
      • 2016-02-16
      • 2018-09-05
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      相关资源
      最近更新 更多