如何使用Node.js统计MongoDB文档中的键值对数量
统计MongoDB返回文档中的键值对数量
嘿,这个需求其实用JavaScript原生方法就能轻松搞定!MongoDB驱动返回的文档本质上就是普通的JS对象,我们可以直接用Object.keys()来统计它的键值对数量。
具体实现步骤如下:
- 用
Object.keys(doc[0])获取文档对象所有键名组成的数组 - 调用数组的
.length属性,得到的数值就是键值对的总数
修改后的完整代码如下:
app.get("/editMBTI", function editMBTIFunc(req, res) { MongoClient.connect(url, function (err, client) { assert.equal(null, err); console.log("Connected Successfully to the Database server"); const db = client.db(dbName); //getting the whole collection of MBTI sets var cursor= db.collection("mbti_testcontent").find(); cursor.toArray(function (err, doc) { assert.equal(err, null); console.log(doc[0]); // 统计键值对数量的逻辑 const keyValuePairCount = Object.keys(doc[0]).length; console.log(`当前文档的键值对数量是:${keyValuePairCount}`); // 也可以根据需求把结果返回给前端,比如:res.send({count: keyValuePairCount}) }); }); });
补充小技巧:
如果你的文档里包含MongoDB自动生成的_id字段,而你想排除它只统计自定义的键值对,可以这样调整:
const allKeys = Object.keys(doc[0]); const customKeyValueCount = allKeys.filter(key => key !== '_id').length;
内容的提问来源于stack exchange,提问作者alfheimrShiven
相关产品推荐
相关产品推荐

