假设我们有兴趣编写一个额外的慢速HFT引擎并使用Mongo。
这是JSON,代表了一堆日常外汇对象:
{
date: 2016-12-21,
relation: {
{currency: USD, value: 1.0},
{currency: EUR, value: 0.9},
}
},
{
date: 2016-12-21,
relation: {
{currency: USD, value: 0.9},
{currency: FJD, value: 1.0},
}
},
我想获取所有日常外汇对象:
如何?
答案 0 :(得分:1)
尝试以下方法:
db.collection.find( {
"$or" : [
{
"date" : "2016-12-21",
"relation.0.currency" : "JSD"
},
{
"date" : "2016-12-21",
"relation.1.currency" : "JSD"
}
]
})
请注意,示例文档不是有效的JSON,因此上面的查询将所有值都匹配为字符串。我还假设"关系"是嵌入式文档而不是数组;用" 0"和" 1"是字符串字段名称而不是数组位置。
如果你的关系"结构化为嵌入式文档数组,如下所示:
{
date: "2016-12-21",
relation: [
{ currency: "USD", value: 1.0},
{ currency: "EUR", value: 0.9},
]
}
然后查询将是:
db.collection.find( {
"date" : "2016-12-21",
"relation.currency" : "JSD"
})
有关详细信息,请参阅Array of Embedded Documents。