您好我正在尝试找到一种方法来保持内部数组中的对象顺序,同时mongoexport操作。我正在使用mongodb 3.0.2。
这是架构;
mongoose.Schema({
parity: {
type: String
},
exchange: String,
interval: String,
dataSet: [{
open: Number,
high: Number,
low: Number,
close: Number,
date: Date,
btcVolume: Number,
_id: false
}],
_id: {
type: String
}
})
所以,基本上我想根据dataSet
字段保留订单date
数组。问题是mongoexport没有保留订单,即使我在每个文档中都订购了dataSet。
我正在玩这个查询,但无法实现。
> mongoexport -q '{ $query: {parity: "BTC-STRAT"}, $orderby: {"dataSet.date": -1} }' -d crypto -c stockentities --out strat.json
谢谢!
答案 0 :(得分:1)
$orderby
不对数组中的项目进行排序。它对文件进行排序。在您的情况下,它会为每个文档从date
数组中选择一个包含最新dataSet
的项目,并按此值按降序对文档进行排序。
mongoexport保留dataSet
中元素的顺序,因为它存储在原始文档中。