mongoose关于数组的查找方法

查看:132
本文介绍了mongoose关于数组的查找方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

const arrayA = ["a", "b", "c"], // 假设这个数组的长度未知,所以从数组中一个一个提取出来查找不可行
const stringID = "idABC",

数据库中包含:

{
    "_id" : ObjectId("5943516dbffce41e90cdbdaa"),
    "ID" : "idABC",
    "money" : 1.68,
    "dataArray" : ["d"],
},
{
    "_id" : ObjectId("5943516dbffce41e90cdbdab"),
    "ID" : "oFx8b0",
    "money" : 1.68,
    "dataArray" : ["a"],
}
...

数据库查询条件:

  1. 数据库中ID是stringID

  2. 数据库中dataArray是arrayA中的某个值

  3. 条件1和条件2是或的关系

我的方法是: somethingModel.find({$or: [{location: {$each: userGroupList}}, {openid: openid}]})

结果是错误的写法,请问有没有能实现我说的条件的方法?

解决方案

分开查询,不要混在一起。

somethingModel.find(null, 'dataArray', (err, doc) => {
    doc.map((v) => {
        if (arrayA.includes(v)) {//满足条件2
            //TODO:取出数据,后续操作
        }
    })
});

//满足条件1
somethingModel.find({ID:stringID }, (err, doc) => {
    //TODO:取出数据,后续操作
});

这篇关于mongoose关于数组的查找方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆