【问题标题】:Find document matching to all the provided parameters in mongodb查找与 mongodb 中所有提供的参数匹配的文档
【发布时间】:2021-07-20 14:53:36
【问题描述】:

假设我在收藏 bookDetails 中有文档,

doc1: {'bookData':{'bookName':'lotr','bookPart':'Part 3'}, 'library_name':'omega','libraryId':12166}

doc2: {'bookData':{'bookName':'hp','bookPart':'Part 7'}, 'library_name':'omega','libraryId':12199}

doc3: {'bookData':{'bookName':'hertu','bookPart':'Part 7'}, 'library_name':'omega','libraryId':9999}

我只想获取与所有字段库名称匹配的文档:omega,库 ID:12199 和 bookName:hp。

为此,我尝试如下:

await collection.aggregate([{ $match: { library_name: 'omega' } }, ]).exec();{ $match: { libraryId: 12199 } }

但我也想匹配 bookname : 'hp',所以我可以得到所需的文件。

如果有人需要任何进一步的信息,请告诉我。

【问题讨论】:

  • 你可以将所有条件放在一个匹配阶段{ $match: { library_name: 'omega', libraryId: 12199, bookName: "hp" } }

标签: node.js mongodb mongoose mongodb-query aggregation-framework


【解决方案1】:

演示 - https://mongoplayground.net/p/C2EP96CkIRo

db.collection.find({
  library_name: "omega",
  libraryId: 12199,
  "bookData.bookName": "hp"
})

演示 - https://mongoplayground.net/p/9mf9Sp8C4u6

带聚合

db.collection.aggregate([
  {
    $match: {
      library_name: "omega",
      libraryId: 12199,
      "bookData.bookName": "hp"
    }
  }
])

【讨论】:

    猜你喜欢
    • 2017-08-21
    • 2019-05-06
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 2016-02-17
    • 1970-01-01
    相关资源
    最近更新 更多