gpt4 book ai didi

mongodb - 如何将排序后的数组存储回 MongoDB?

转载 作者:可可西里 更新时间:2023-11-01 09:59:47 28 4
gpt4 key购买 nike

在 MongoDB 中,对文档中的数组进行排序然后将排序后的数组存储回文档的最有效方法是什么?

作为背景,我有一个生成时间戳数据集合并将其存储到数据库的进程,但不能保证按时间顺序存储。数据收集完成后,我想按时间对数据数组进行排序并将其写回数据库,因为以后对数据的所有查询都将始终需要按时间排序。

谢谢!

最佳答案

MongoDB 2.4 版本在这里提供了另一种选择,即在使用 $sort 修饰符更新数组字段时,保持数组字段按排序顺序排列。

db.collection.update({_id: document_id}, {
$push: {
myarray: {
$each: [{timestamp: 456, x: 1}, {timestamp: 123, x: 2}, ...],
$sort: {timestamp: 1}
}
}
});

这将导致更新文档的 myarray 字段的元素按 timestamp 升序存储。

如果您只想对现有元素进行排序而不添加任何新元素,请使用 $each: []:

db.collection.update({_id: document_id}, {
$push: {
myarray: {
$each: [],
$sort: {timestamp: 1}
}
}
});

关于mongodb - 如何将排序后的数组存储回 MongoDB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9120825/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com