带有$ pop的mongodb点符号

时间:2018-01-26 20:54:10

标签: javascript mongodb meteor

使用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,它显示了一个几乎我的工作示例我试图做(尽管在第357行用$ pull而不是$ pop)。我一直收到的错误代码是:

  

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

1 个答案:

答案 0 :(得分:0)

原来问题中列出的代码确实有效:当没有添加该功能时,我可能使用旧版本的MongoDB。另一张海报提到了这个,但由于某种原因,答案已经消失了。

供参考,请使用db.version()获取版本 此帖子上jdoodle上运行的版本为3.2.4,这不是Mongo的当前版本(本文发布时为3.6)。