【问题标题】:Mongoose: How to find by multiple fields from an array of objectsMongoose:如何从对象数组中查找多个字段
【发布时间】:2015-12-21 10:09:09
【问题描述】:

假设我有一个看起来像这样的模型:

{ name: String, category: String }

我得到了一个包含如下对象的数组:

var array = [{
    { name: "a", category: "A" }
  , { name: "b, category: "A" }
  , { name: "b", category: "B" }
}]

现在我想查找与数组中的值对匹配的所有对象。如果它只是一个字符串数组,代码将类似于Model.find({ name: {$in: array } }),但我需要类似

Model.find({ name,category: {$in: array} })

这可能吗?

【问题讨论】:

    标签: arrays mongoose


    【解决方案1】:

    您可以在 $or 查询中直接使用该数组来查找与这些对中的任何一个匹配的文档:

    var array = [
        { name: "a", category: "A" }
      , { name: "b", category: "A" }
      , { name: "b", category: "B" }
    ];
    
    Model.find({$or: array}, function(err, docs) { ... });
    

    【讨论】:

    • 或使用猫鼬的.or helper - Model.find().or(array)
    • 我怎么没想到呢?非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 2021-06-23
    • 2017-04-16
    • 1970-01-01
    相关资源
    最近更新 更多