如何使用猫鼬获取文档的特定键值

Posted

技术标签:

【中文标题】如何使用猫鼬获取文档的特定键值【英文标题】:How to get particular key value of a document using mongoose 【发布时间】:2019-10-16 23:58:09 【问题描述】:

您好,我是 mongoose 的新手,表示我想 GET 来自文档数组的所有对象的特定键值并在响应中显示。

我在文档中有以下数据。

[
    "admins": 
        "email": "rrg_gg@infomail.com",
        "password": "$2a$10$VNS6RraM5GDh.EU/KJuVle8Qjntog0eSPW3Zup6XDvlDR25Jor/56",
        "firstName": "hjjh",
        "lastName": "ZY",
    ,
    "_id": "5cefa5d0531e6b597dceb6d0",
    "companyName": "XYZ",
    "address": "World",
    "contactDetails": "54534454",
    "companyID": "044025",
    "__v": 0
,

    "admins": 
        "email": "beans-gg@merok.com",
        "password": "$2a$10M5GDh.EU/KJuVle8Qjntog0eSPWDR25Jor/56",
        "firstName": "gg",
        "lastName": "yu",
    ,
    "_id": "5cefa5d0531e6b5678dceb6e8",
    "companyName": "gY",
    "address": "World",
    "contactDetails": "534454",
    "companyID": "984556",
    "__v": 0
]

我想从文档中获取所有companyID 的列表。这个怎么查询?

我在路由中尝试过,但得到空响应:-

 router.get('/getCid', function(req, res, next)
    Admin.find(, function(err, admin) 
    res.json(admin.companyID);
  );
);

如何获取 companyID 列表?

【问题讨论】:

【参考方案1】:

你必须映射输出

router.get('/getCid', function(req, res, next)
    Admin.find(, function(err, data)
    let companyIDS = data.map((admin)=>return admin.companyID);
    res.json(companyIDS);
  );
);

或者您可以将查询更改为仅从集合中选择 companyID 字段

 router.get('/getCid', function(req, res, next)
        Admin.find(,'companyID',function(err, data)
        res.json(data);
      );
    );

在此处查看有关选择特定列的更多信息:Mongoose, Select a specific field with find

【讨论】:

以上是关于如何使用猫鼬获取文档的特定键值的主要内容,如果未能解决你的问题,请参考以下文章

如何使用猫鼬更新子文档数组中的特定元素? [复制]

如何从猫鼬的另一个集合中计算文档?

如何使用猫鼬获取所有文件及其计数

如何使子文档在猫鼬的特定日期过期?

如何仅在猫鼬中获取子文档?

如何仅在猫鼬中获取子文档?