我想获得数据库中数组的大小,以便可以遍历它,因此我在数据库中创建了一个名为Size的字段。我想将此字段的值存储在变量中,所以我知道需要遍历数组多少次。我可以打印出整个文档,但是我无法选择“大小”值。
这是我的数据库文档:
_id:ObjectId("5c02492d1c9d440000498a9b")
Names:Array
Size:5
现在,这是我要尝试从size字段中提取数字5的代码。
var cursor = db.collection('Room').find('Size');
cursor.forEach(function (err, num) {
if(err) {
return console.log(err);
}
console.log(num);
});
这是console.log(num)打印的内容:
{ _id: 5c02492d1c9d440000498a9b,
Names:
[ 'TjAa0wOe5k4',
'Sz_YPczxzZc',
'mM5_T-F1Yn4',
'En6TUJJWwww',
'5T_CqqjOPDc' ],
Size: 5 }
有什么想法/帮助吗?
对于任何想知道的人,我都知道了。事实证明,将结果转换为数组,然后调用numArr [0] .Size是可行的。这是任何有好奇心的人的代码:
var length;
db.collection('Room').find({'Size': Object}).toArray((err, numArr) => {
if(err) {
return console.log(err);
}
length = numArr[0].Size
return length;
});
答案 0 :(得分:0)
更新:
OP通过使用
.toArray()
方法将光标转换为数组,然后引用numArr[0].Size
之类的属性来解决该问题。
您可以像这样访问Size
属性:
var size = num.Size;
您尝试过这种方式吗?