首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MongoDb匹配未知数量的不同值

MongoDb匹配未知数量的不同值
EN

Stack Overflow用户
提问于 2019-07-03 05:34:21
回答 1查看 27关注 0票数 0

我正在尝试从MongoDB中提取一些数据。

我的数据库看起来像这样;

代码语言:javascript
复制
{
"name": "A",
"address": "London Road",
"values": [{"id": 1234, "name":"ABCD"},{"id": 6784, "name":"test"}]
}
{
"name": "B",
"address": "South Road",
"values": [{"id": 4327, "name":"guest"},{"id": 6743, "name":"demo"}]
}
{
"name": "C",
"address": "North Road",
"values": [{"id": 1234, "name":"ABCD"}]
}

我正在尝试根据values id密钥提取数据。

因此,如果我将1234values id匹配,我将返回元素A和C-我能够做到这一点。

我想要匹配的值可能会改变,它们可能是12346743 -返回元素A、B和C。

我已经创建了下面的$or来处理这个问题,但是要匹配的值的数量会有所不同,所以$or函数的数量应该根据要匹配的值的数量而变化。

我如何创建一个查询,允许我匹配未知数量的不同值?-可能是一个循环?

提前谢谢。我已经搜索过了,网络也没有太多的成功!

代码语言:javascript
复制
const orders = await findr.find({
    $or: [{
            values: {
                $elemMatch: {
                    id: "1234",

                }
            }
        },
        {
            values: {
                $elemMatch: {
                    id: "6743",

                }
            }
        }
    ]
}).toArray()
EN

Stack Overflow用户

回答已采纳

发布于 2019-07-03 06:15:24

您可以使用$in编写查询:{"values.id": { $in: ["123", "456"] }}

$elemMatch不是必需的,因为您只指定了一个条件。

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

https://stackoverflow.com/questions/56860300

复制
相关文章

相似问题

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