猫鼬在所有子文档数组中查找

时间:2021-06-25 07:14:59

标签: javascript node.js mongodb mongoose

这是我的猫鼬模式:

const userSchema = new mongoose.Schema({
  name: String,
  email: String,
  images: [
    {
      fileName: String,
      location: String,
      fileExtension: String
    }
  ],
  documents: [
    {
      fileName: String,
      location: String,
      fileExtension: String
    }
  ]
})

这里,为了查询子文档,我们将使用如下:

const doc = await Users.findOne({'images._id' : '60d57c5435934431b8a27hf'})
//or
const doc = await Users.findOne({'documents._id' : '60d57c5435934431b8a27hf'})

是否有任何方法可以通过 Id 全局搜索所有子文档数组(即图像和文档)而无需明确提及要查找的子文档数组?

1 个答案:

答案 0 :(得分:1)

您可以使用 MongoDB 中的 $or 运算符:

const doc = await Users.findOne({
  $or: [
    { 'images._id': docID },
    { 'documents._id': docID }
  ]
});