首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较同一文档的两个字段

比较同一文档的两个字段
EN

Stack Overflow用户
提问于 2018-07-17 16:47:46
回答 1查看 10.4K关注 0票数 4

我试图查询一个庞大的芒果收藏,其中大约有5000万张记录。在mongo查询中,我只需要几个字段。对象ID和MD5,它们存在于文档中。为此,我做了

查询:

代码语言:javascript
复制
db.getCollection('experimental_engine').find({},{"md5":1,"_id":1}) 

结果:

代码语言:javascript
复制
/* 1 */
{
    "_id" : "5cee41f2ca4e0ebf567ffd1be5cdaf1f",
    "md5" : "1d813cb29082b13efe572e8088f006dd"
}

/* 2 */
{
    "_id" : "fcd79aac0d5c5ebdfd0fa389368ab6f3",
    "md5" : "13a1a6cd5c8f1c5eaf3d409f4d809889"
}


/* 3 */
{
    "_id" : "2a0b42d01892bd9b7368d045a4c7862c",
    "md5" : "2a0b42d01892bd9b7368d045a4c7862c"
}


................

现在,我希望同时匹配"_id“和"md5”,并且只获得匹配值( _id = md5 )。

mongo命令支持是否匹配两个键的值?

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-17 16:52:39

您可以使用$expr,它允许在查询语言中使用聚合表达式。

代码语言:javascript
复制
db.collection.find({ "$expr": { "$eq": [ "$_id" , "$md5" ] } })

或聚集

代码语言:javascript
复制
db.collection.aggregate([
  { "$match": { "$expr": { "$eq": [ "$_id" , "$md5" ] } } }
])
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51386582

复制
相关文章

相似问题

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