我正在尝试使用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);

}));

关于javascript - 如何使用NodeJS从MongoDb以JSONObject形式获取结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59967103/

10-12 12:47