【问题标题】:How to query MongoDB with specific request?如何使用特定请求查询 MongoDB?
【发布时间】:2022-01-13 12:52:47
【问题描述】:

目前我的数据库中保存了 3 篇博文,我想根据其名称检索博文。

这是我在 MongoDB 中的数据库:

[
  {
    _id: ObjectId("61de0e1562abb7ffd4089373"),
    name: 'learn-react',
    upvotes: 0,
    comments: []
  },
  {
    _id: ObjectId("61de0e1562abb7ffd4089374"),
    name: 'learn-node',
    upvotes: 0,
    comments: []
  },
  {
    _id: ObjectId("61de0e1562abb7ffd4089375"),
    name: 'my-thoughts-on-resumes',
    upvotes: 0,
    comments: []
  }
]

例如,如果我想发送一个 GET 请求以使用 url:localhost:8000/articles/learn-react 检索“learn-react”,我将如何查询数据库?我只知道如何使用db.find() 检索集合中的所有文档,但我将如何通过 url 中的名称检索一篇特定的博客文章?

【问题讨论】:

  • findOne 是简短的回答。这看起来像是来自 Linkedin 课程。您可以在 github 上找到这方面的一些代码
  • @tromgy 是的,但源代码仍然对我产生错误
  • @MayurVaghasiya 嗯。我正在寻找更动态的查询,您可以在其中根据文章名称更改查询
  • @Letscode,你看到什么样的错误?使用详细信息更新您的帖子或创建一个新问题。

标签: mongodb express mongodb-query


【解决方案1】:

使用$unwind 可以解构数组字段。然后使用$match 可以过滤文档!试试这个代码对你有帮助!

db.getCollection('your collection').aggregate([  
  {
    $unwind: '$cource' //name of the array
  },
 {
    $match: { 'cource.name': 'learn-react' }
  },
]);

【讨论】:

  • 如果我的回答对你有帮助,那就采纳吧:)
  • 这个答案如何匹配问题?
  • @Letscode 想要返回与数组匹配的特定对象,使用 $unwind 解构数组并使用 $match 过滤数据
猜你喜欢
  • 1970-01-01
  • 2016-07-06
  • 2021-05-24
  • 1970-01-01
  • 2020-05-06
  • 2012-11-20
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
相关资源
最近更新 更多