首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >查询Mongo中子文档/列表的子文档

查询Mongo中子文档/列表的子文档
EN

Stack Overflow用户
提问于 2016-12-21 23:25:25
回答 1查看 621关注 0票数 0

假设我们对编写一个特别慢的HFT引擎感兴趣,并且正在使用Mongo。

下面是JSON,表示一组每日外汇对象:

代码语言:javascript
运行
复制
{
    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},
    }
},

我想在以下地方提取所有每日外汇对象:

  • 日期= 2016-12-21
  • 外汇对象在FJD的关系列表中至少有一个位置描述FJD货币

多么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-22 00:25:08

尝试以下几点:

代码语言:javascript
运行
复制
db.collection.find( {
  "$or" : [
    { 
      "date" : "2016-12-21", 
      "relation.0.currency" : "JSD" 
    },
    { 
      "date" : "2016-12-21", 
      "relation.1.currency" : "JSD" 
    }
  ]
})

注意,示例文档不是有效的JSON,因此上面的查询将所有值作为字符串进行匹配。我还假设"relation“是一个嵌入的文档,而不是数组;"0”和"1“是字符串字段名,而不是数组位置。

如果您的“关系”结构为一组嵌入的文档,如下所示:

代码语言:javascript
运行
复制
{
    date: "2016-12-21",
    relation: [
        { currency: "USD", value: 1.0},
        { currency: "EUR", value: 0.9},
    ]
}

然后查询如下:

代码语言:javascript
运行
复制
db.collection.find( {
  "date" : "2016-12-21",
  "relation.currency" : "JSD"
})

有关详细信息,请参阅嵌入文档数组

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41273588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档