gpt4 book ai didi

arrays - MongoDB - 通过整数数组搜索文档

转载 作者:可可西里 更新时间:2023-11-01 09:21:00 26 4
gpt4 key购买 nike

我需要检索在数组中至少包含一个值的文档。我的文档结构是:

{ "_id": 3, 
"username": "111111",
"name": "XPTO 1",
"codes": [ 2, 4, 5 ],
"available": true }


{ "_id": 4,
"username": "22222",
"name": "XPTO 2",
"codes": [ 3, 5 ],
"available": true }

我需要按“代码”进行查找,如果我搜索值“5”,我需要检索数组中包含该值的所有文档。

我尝试使用#elemMatch 但没有成功...

db.user.find({codes: {"$elemMatch": {codes: [2,8]}}}, {"codes":1})

我该怎么做?

提前致谢。

最佳答案

您可以检查数组中的值,就像比较某个字段的值一样。因此,您需要这样做,而不使用 $elemMatch:-

  1. 如果要检查数组是否包含单个值 5:-

    db.user.find({codes: 5}, {codes:1})

    这将返回所有文档,其中 codes 数组包含 5

  2. 如果要检查数组是否包含给定值集中的值:-

    db.user.find({codes: {$in: [2, 8]}}, {codes:1})

    这将返回数组包含 2 或 8 的文档

  3. 如果你想检查一个数组是否包含列表中的所有值:-

    db.user.find({codes: {$all: [2, 5]}}, {codes:1})

    这将返回包含 2 和 5 的数组的所有文档。

关于arrays - MongoDB - 通过整数数组搜索文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14366719/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com