我有一个MongoDB数据库,它有一个相当非结构化的布局。我想在我的“app.js”文件中做的是确定我有什么样的BSON类型。如果它是一个数组,看看它是什么数组,从那里,将有两个可能的选项:对象或字符串。根据它是哪一个,我想做不同的事情。
目前,我正在测试,我有以下代码:
app.get("/db", function(req, res) {
Field.find({}, function(err, foundFields){
// This is where I would like to query the type.
});
});
其基本思想是迭代数据库,并在数据库的不同分支中更深入,直到到达一个字符串数组,根据分支的不同,这些字符串将处于不同的深度。
到目前为止,我发现在某种意义上我可能需要使用“$type”,但我不知道如何使用它从我所处的级别获得一个类型,然后根据2个选项检查它。
1条答案
按热度按时间83qze16e1#
在本例中,代码连接到在本地主机上运行的MongoDB示例(默认端口为27017),然后选择“mydb”作为数据库,选择“items”作为集合。
一旦建立了连接,它就使用find方法检索所有文档,并使用javascript方法forEach循环遍历文档数组。
在forEach循环中,if语句使用javascript的Array.isArray方法来检查“fieldName”字段是否为数组。
如果它是一个数组,它使用typeof操作符检查数组第一个元素的类型,根据元素是对象还是字符串,它将运行相应的代码块。