使用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}
)
我研究了$pop,dot-notation,random question我发现没有回复,甚至还有一个github commit,它显示了一个几乎我的工作示例我试图做(尽管在第357行用$ pull而不是$ pop)。我一直收到的错误代码是:
SyntaxError:无效的属性id @(shell):3:6
答案 0 :(得分:0)
原来问题中列出的代码确实有效:当没有添加该功能时,我可能使用旧版本的MongoDB。另一张海报提到了这个,但由于某种原因,答案已经消失了。
供参考,请使用db.version()
获取版本
此帖子上jdoodle上运行的版本为3.2.4,这不是Mongo的当前版本(本文发布时为3.6)。