gpt4 book ai didi

javascript - 如何构建 mongoDB 查询来查找文档字段中的任何 myArray id?

转载 作者:行者123 更新时间:2023-12-03 02:34:58 24 4
gpt4 key购买 nike

我有一个 mongoDB,一个具有以下架构的集合:

const ReceiptSchema = new Schema(
{
status: String,
active: Boolean,
name: String,
companies: [Schema.Types.ObjectId],
total: Number
},
{ toJSON: { virtuals: true }, toObject: { virtuals: true } }
)

我的脚本中有以下 ids 数组:

myArray = ['abc', 'def', 'ghi']

如何构建一个查询来获取来自收据架构的所有文档,其中包含数组中字段 companies 内的一些 id?

有什么想法吗?谢谢

最佳答案

您可以使用$setIntersection在companys数组中查找任何匹配的数组元素

在 mongo 3.6+ 上

查找

db.recip.find({$expr : {$gt : [{$size : {$setIntersection : ["$companies", ['abc']]}}, 0] }})

聚合

db.recip.aggregate(
[
{$match : {$expr : {$gt : [{$size : {$setIntersection : ["$companies", ['abc']]}}, 0] }}}
]
)

在 mongo 3.4 上

db.recip.aggregate(
[
{$addFields : {isMatches : {$gt : [{$size : {$setIntersection : ["$companies", ['abc']]}}, 0] }}},
{$match : {isMatches : true}}
]
)

在 mongo 版本低于 3.4 时将 $addFields 更改为 $project

关于javascript - 如何构建 mongoDB 查询来查找文档字段中的任何 myArray id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48572835/

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