【问题标题】:How to get result in JSONObject form from MongoDb using NodeJS如何使用 NodeJS 从 MongoDb 获取 JSONObject 形式的结果
【发布时间】:2020-05-14 22:50:33
【问题描述】:

我正在尝试使用 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
 }  
]

请告诉我如何才能获得理想的结果,如果有任何帮助,我们将不胜感激。

谢谢

【问题讨论】:

    标签: javascript node.js mongodb


    【解决方案1】:
    db.getCollection('coll').find({},{product_name:1,_id:0})
    

    【讨论】:

    • 这将返回数据库中可用的相同值,而不是不同的。
    【解决方案2】:

    只需一个小改动,它就应该开始工作了:

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

    【讨论】:

      【解决方案3】:

      只需要在地图函数中使用 r

       let output = docs.map( r => ({'product_name': r})); 
      

      【讨论】:

        猜你喜欢
        • 2020-03-01
        • 2011-08-23
        • 1970-01-01
        • 2019-07-17
        • 1970-01-01
        • 2021-07-01
        • 2020-08-24
        • 2018-08-23
        • 2019-03-27
        相关资源
        最近更新 更多