繁体   English   中英

如何使用 NodeJS 从 MongoDb 以 JSONObject 形式获取结果

[英]How to get result in JSONObject form from MongoDb using NodeJS

我正在尝试使用 NodeJs 从 MongoDb 获取Distinct数据。我正在以 JSONArray 形式获取数据,因为我没有从 MongoDb 获取密钥。

下面是我的代码:

const coll = client.db("mydb").collection("ItemsAddedByAdmin");
coll.distinct("product_name",(function(err,docs){                     
   res.send({"product_name":docs});
}));

下面是我的输出

{
"product_name": [
    "Biology",
    "Chemistry",
    "Crown",
    "Crown Junior",
    "Long Book",
    "Long Book A4",
    "Physics",
    "Sketch Book",
    "Universal"
  ]
}

当我尝试下面的代码时,我没有得到任何值。

const coll = client.db("mydb").collection("ItemsAddedByAdmin");
coll.distinct("product_name",(function(err,docs){
   let output = docs.map(r => ({'product_name':docs.product_name}));
   res.send(output);                        
}));

输出

[
{},
{},
{},
{},
{},
{},
{},
{},
{}
]

我想要键值对中的值,如下所示:

[
 {
   "product_name":Book
 },
 {
   "product_name":Pencil
 }  
]

有人请让我知道我怎样才能得到想要的结果任何帮助将不胜感激。

谢谢

只是一个小的改变,它应该开始工作:

const coll = client.db("mydb").collection("ItemsAddedByAdmin");
coll.distinct("product_name",(function(err,docs){

      let output = docs.map(r => ({'product_name':r})); // r contains the item of array at respective index
      res.send(output);       

}));

只需要在您的地图功能中使用 r

 let output = docs.map( r => ({'product_name': r})); 
db.getCollection('coll').find({},{product_name:1,_id:0})

暂无
暂无

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

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