简体   繁体   English

mongodb 从一个值获取整个文档

[英]mongodb get entire document from a value

i want to get all values of a mongodb document from a single value.我想从单个值中获取 mongodb 文档的所有值。
Example:例子:

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

This is my object.这是我的 object。
When i use.findOne() function of MongoDB, i want to get all values.当我使用 MongoDB 的.findOne() function 时,我想获取所有值。 Example:例子:

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

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

(i'm using node.js) (我正在使用 node.js)

this is my current code:这是我当前的代码:

   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)
   })

How i can do this?我怎么能这样做?
Thanks in advice and sorry for bad english!感谢您的建议,抱歉英语不好!

When you call bots.findOne({data}) it returns a "Promise", not the data.当您调用bots.findOne({data})时,它会返回“Promise”,而不是数据。 You need to wait for the Promise resolve to get the data.您需要等待 Promise 解析才能获取数据。 You can try this code.你可以试试这段代码。

   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)
   })

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM