【问题标题】:How to retrive specific data from Mongodb如何从 Mongodb 中检索特定数据
【发布时间】:2022-01-14 23:09:53
【问题描述】:

这是我在 MongoDB 中的数据集合,我想检索模型属性的数据。

{"_id":{"$oid":"61dd83fce198010f26b2f47d"},"assetID":"0001","assetCategory":"Laptop","model":"Asus","serialNumber":"0x001","status":"Non-Available","__v":{"$numberInt":"0"}}

我使用 express js 编写了如下代码段的代码。

router.get("/detail/:id",async(req,res)=>{
let ID = req.params.id;
await Asset.find({_id:ID}).then((assets)=>{
    res.json(assets)
}).catch((err)=>{
    console.log(err)
})

})

之后,我就可以得到这样的json对象了。

[
{
    "_id": "61dd83fce198010f26b2f47d",
    "assetID": "0001",
    "assetCategory": "Laptop",
    "model": "Asus",
    "serialNumber": "0x001",
    "status": "Non-Available",
    "__v": 0
}

]

但我只想获取模型属性的数据。谁能解释一下我应该做哪些改变?谢谢!

【问题讨论】:

  • 不完全确定你在问什么。您只想返回 model 属性,还是希望通过 model 而不是 _id 查找?
  • @BuzzMoschetti 实际上,我只想从这些数据中获取模型属性。如果你能看到我的 JSON 对象,里面有各种数据,比如assetID、assetCategory 等等。我只想要模型属性的数据。在这个json对象中,可以表示为"model":"Asus"

标签: mongodb express mern


【解决方案1】:

试试这个:

await Asset.find({_id:ID},{model:true}).then((assets)=>{

find() 的第二个参数是投影,相当于 SQL 中的select model ..。您可以根据需要添加任意数量的字段,例如

await Asset.find({_id:ID},{model:true, status:true}).then((assets)=>{

请注意,_id 始终会自动返回。您可以按如下方式禁止此操作:

await Asset.find({_id:ID},{model:true, _id:false}).then((assets)=>{

【讨论】:

  • 酷!这个答案可以解决我的问题。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2013-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多