是否有可能创建一个带容量限制的子集合?我正在尝试类似以下操作:
user = {
name: String,
latest_messages: [String]
}
最新消息的数量被限制在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:
有一个开放的Jira工单,"SERVER-1050"请求添加能够将两个操作(推送和弹出)作为一个原子操作执行的功能。