Node.js 特定入口数组的TTL mongo

Node.js 特定入口数组的TTL mongo,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我阅读了可以为文档激活的(生存时间)索引 但如果文档结构如下所示,它是否有效 username: 'user x', activity: [ {type:a, desc:1, timestamp:timestamp}, {type:b, desc:2, timestamp:timestamp}, {type:b, desc:3, timestamp:timestamp}, etc. ] 是否可以根据每个数组项的时间戳+7天设置TTL,以便只保留那些过期的,但保留最近的?仔细阅读

我阅读了可以为文档激活的(生存时间)索引

但如果文档结构如下所示,它是否有效

username: 'user x',
activity: [
  {type:a, desc:1, timestamp:timestamp},
  {type:b, desc:2, timestamp:timestamp},
  {type:b, desc:3, timestamp:timestamp},
  etc.
]

是否可以根据每个数组项的
时间戳+7天
设置TTL,以便只保留那些过期的,但保留最近的?

仔细阅读文档,TTL索引可以应用于数组,但它会在过期时删除整个文档,而不仅仅是数组中的元素


但是,您可以将数组拆分为多个文档?

谢谢,因此无法使用TTL。。。可能需要设置cron任务来手动删除条目,嗯……您可以将该区域拆分为一个文档,然后在查询时将其连接起来