【发布时间】:2020-12-03 14:34:32
【问题描述】:
我是 mongodb 的新手,并且在这个任务上卡住了一段时间。 我需要使用以下架构对集合执行查询:
{
ticker: String,
asks: [[Number]],
bids: [[Number]],
timestamp: String,
datetime: String
}
这是文档示例:
{
"_id" : ObjectId("5fc17630cf8dff0cd5506dc4"),
"asks" : [
[ "23685.0", "0.008" ],
[ "23688.8", "0.000" ],
[ "23696.7", "0.000" ]
],
"bids" : [
[ "23553.7", "0.200" ],
[ "23557.8", "0.207" ],
[ "23558.4", "0.045" ],
[ "23563.4", "0.020" ]
],
"timestamp" : 1606514176211,
"datetime" : "2020-11-27T21:56:16.211Z",
"ticker" : "YFI/USDT"
}
询价和出价的内部数组有两个元素:第一个元素是价格,第二个元素是数量。
我有两个问题:
-
我需要查询集合以获取价格大于基于日期时间字段的时间间隔的要价和出价(仅要价或仅出价)中的值的所有条目。 我试图弄乱 $elemMatch 和聚合框架,但到目前为止没有运气。
-
我的另一个问题是,在查询这些字段时,数组或数组字段类型是否是一个不错的选择。我希望有数百万条这种类型的记录。请建议是否添加索引和/或使用其他数据结构将这些数据保存在集合中。
非常感谢任何帮助。 谢谢。
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework