• 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 0

    Mongodb $elemMatch操作符

    Posted by 撒得一地 on 2016年3月31日 in Mongodb教程
    国外稳定加速器推荐    Express | Vypr

    $elemMatch

    $elemMatch 操作符输出满足这样条件的文档,即文档中field数组中至少一个元素满足全部指定的匹配条件。

    {<field>:{$elemMatch:{ query1,query2, ... }}}
    

    在 $elemMatch 表达式中,如果你仅仅指定一个查询条件,那么你不需要使用$elemMatch 操作符。

    实例,假设scores数据库有以下文档:

    >db.scores.find()
    { _id: 1, results: [ 82, 85, 88 ] }
    { _id: 2, results: [ 75, 88, 89 ] }
    >db.scores.find(
       {results:{$elemMatch:{$gte:80,$lt:85}}}
    )
    { _id: 1, results: [ 82, 85, 88 ] }
    

    上面的查询输出满足以下条件的文档:只要results数组中至少存在一个元素大于等于80且小于85。所以在 [ 82, 85, 88 ]数组中,82刚好满足,而在[ 75, 88, 89 ]中,没有一个元素满足上述条件。

    再看一个例子,假设survey数据中存在如下文档:

    { _id:1,results:[{product:"abc",score:10},{product:"xyz",score:5}]}
    { _id:2,results:[{product:"abc",score:8},{product:"xyz",score:7}]}
    { _id: 3,results:[{product:"abc",score:7}, {product:"xyz",score:8}]}
    

    假设要查询的文档中,results数组中至少一个元素 product 等于"xyz"且 score 大于等于8,那么可以使用下面的查询语句:

    db.survey.find(
       { results:{$elemMatch:{product:"xyz",score:{$gte:8}}}}
    )
    { _id: 3,results:[{product:"abc",score:7},{product:"xyz",score: 8}]}
    

    单一条件查询

    看下面的例子,假设 $elemMatch 操作符只指定一个查询条件{ product: "xyz" }:

    db.survey.find(
       { results:{$elemMatch:{product:"xyz"}}}
    )
    

    上面的例子中,因为 $elemMatch 操作符只指定一个查询条件,那么当只有一个查询条件时,使用 $elemMatch 操作符有点大材小用了,你可以将上面的查询替换成下面这样子:

    db.survey.find(
       { "results.product": "xyz" }
    )
    

    本文地址://www.cfage.com/1763.html

    上一篇:

    下一篇:

    相关推荐

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    7 + 0 = ?

    网站地图|广东快乐10分开奖直播

    Copyright © 2015-2019 广东快乐10分开奖直播 All rights reserved.
    闽ICP备15015576号-1,版权所有?psz.

  • 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 超级大乐透免费预测 4场进球彩157期对阵表 北京pk10精准一期计划 生肖时时彩玩法规则 海南环岛赛上的各种表情 海南南国彩票论坛 超级大乐透开奖结果查询 排列五杀号定胆 七星彩资料 均线多头排列 北京pk赛车人工计划 澳洲幸运10开奖结果 超级大乐透开奖公告 下载玩彩票软件 超级大乐透 千禧3d开机号试机号关注码