【问题标题】:mongodb get entire document from a valuemongodb 从一个值中获取整个文档
【发布时间】:2021-08-17 20:57:45
【问题描述】:

我想从单个值中获取 mongodb 文档的所有值。
示例:

    "id": "id",
    "name": "name",
    "description": "description",
    "invite": "invite",
    "support_server": "server",
    "developer": "developer",
    "avatar": null

这是我的目标。
当我使用 MongoDB 的 .findOne() 函数时,我想获取所有值。 示例:

<collection>.findOne({"id":"id"})

//get all values name, description, invite ecc. from id

(我正在使用 node.js)

这是我当前的代码:

   socket.on("bot_req_id", function(data) {
       let db = mongoose.db("wumpusCave")
       let bots = db.collection("bots")
           console.log(data)
           let bot = bots.findOne({data})
           console.log()
           socket.emit("bot_res_id", bot)
   })

我该怎么做?
感谢您的建议,抱歉英语不好!

【问题讨论】:

  • 当您尝试调用findOne 方法时会发生什么?你应该得到整个文档。
  • @MasterAM 它给了我这个:prnt.sc/13l0g2p
  • 您可以将您当前的代码添加到问题中吗?
  • @ĐăngKhoaĐinh 完成
  • @BlackdestinyXX 谢谢,我想我找到了问题所在。你能检查我的答案吗?

标签: javascript node.js database mongodb


【解决方案1】:

当您调用bots.findOne({data}) 时,它会返回“Promise”,而不是数据。您需要等待 Promise 解析才能获取数据。你可以试试这个代码。

   socket.on("bot_req_id", async function(data) {
       let db = mongoose.db("wumpusCave")
       let bots = db.collection("bots")
           console.log(data)
           let bot = await bots.findOne({data})
           console.log(bot);
           socket.emit("bot_res_id", bot)
   })

这篇文章可以帮助你理解这个概念:https://scotch.io/courses/10-need-to-know-javascript-concepts/callbacks-promises-and-async

【讨论】:

    猜你喜欢
    • 2019-03-17
    • 2017-03-09
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    相关资源
    最近更新 更多