按带有对象数组的字符串文档过滤

问题描述

我有一个架构,该架构具有一些属性和对象数组作为属性之一,例如:

const Project = mongoose.Schema({
  _id: String,name: String,comments:[String]
  date: Date,tests:[{
          description: String,comments:[String]
        }]
});

我希望能够过滤包含某些字符串的所有文档。

查询应在“项目”模式的“名称”字段内以及描述字段中的测试对象内搜索字符串。 并返回包含字符串的所有文档(以项目名称或他的测试描述之一)

1。我应该使用哪种查询

2。相同的问题,但除了描述外,还过滤了架构和测试注释字段

解决方法

Project.find({ $or: [ {name: 'something'},{comments: 'something'},{'tests.description': 'something' },{'tests.comments': 'something'} ] })

让我知道这是否对您有用。