【发布时间】:2011-07-01 16:00:46
【问题描述】:
是否可以创建一个有上限的子集合。我正在尝试做类似的事情:
user = {
name: String,
latest_messages: [String]
}
latest_messages 的上限为 10。
如果没有,您有什么替代方案建议?
更新 1:
似乎手动保持数组上限是唯一的解决方案。这是一种方法:
joe = {name: 'Joe', latest_messages: ['', '', '', '', '', '', '', '', '', '']}
db.users.save(joe)
db.users.update({name: 'Joe'}, {$push: {'latest_messages': 'hello'}})
db.users.update({name: 'Joe'}, {$pop: {'latest_messages': -1}})
db.users.update({name: 'Joe'}, {$push: {'latest_messages': 'world'}})
db.users.update({name: 'Joe'}, {$pop: {'latest_messages': -1}})
对提高效率有何建议?
更新 2:
有一个open Jira ticket, "SERVER-1050" 请求添加执行这两个(推送和弹出)作为一个原子操作的能力。
【问题讨论】:
-
查看@asya-kamsky 的回答
标签: mongodb