首页 > 解决方案 > 使用 mongoose 查找与数组之一匹配的文档

问题描述

我有一个具有以下bankAccounts属性的文档:

const UsersSchema = new mongoose.Schema({
    user_id: {
        type: String,
        required: true,
    },
    bankAccounts: [
        {
            currency: String,
            personType: String,
            bankName: String,
            branchCode: String,
            accountNumber: String,
            bic: String,
            bankCity: String,
            accountType: String,
            isPrimary: Boolean,
        },
    ]
})

所以一个用户可以有很多银行账户。它可以有currency: USD一个currency: EUR银行账户。

我正在查询用户并使用该用户拥有的一系列货币检索一个用户,因此在此示例中,我的数组将是['USD', 'EUR'].

我需要对新集合进行新查询,搜索与数组中一种货币匹配的所有订单:

const orders = await Orders.find({status: "Allocating", currency: oneOfTheArray })

如何OR在查询中实现条件,迭代数组中的所有货币?

先感谢您

标签: node.jsmongodbmongoose

解决方案


试试这个

const orders = await Orders.find({status: "Allocating", currency: {$in:oneOfTheArray} })

推荐阅读