Mongodb shell查找以过滤和提取嵌入的文本数据



我想从;字符串化的";api调用,它是mongodb文档中的一个字段。

该字段类似于";apiData";下面的字段(仅在一个长行中(,其中包含请求标头和响应正文作为一个嵌入的对象,我把它分成了行,这样更容易阅读。

键和值位于";逃脱";报价

a( 我可以根据标题和响应正文信息的选择进行筛选/查找吗
目前,我使用的是正则表达式,例如apiData:/5684830/

还有更好的吗?

b( 通过以下方式从Mongo中的字段字符串中提取标题和响应主体信息使用mongodb shell v4 中的构建功能或其他功能

目前,我正在导出整个字段,然后进行处理。我希望在mongodb shell中有更好的方法。

例如提取字段/最终结果的示例

{
"Status Code" : "200 OK"
"numFound": "56047",
"ebook_count_i": 14,
}

文件示例

{
_id : ObjectId("0000000000000000000000000")
apiData : {
"Request URL": "http://api-call-eg.org/search.json?q=1984"
"Request Method": "GET"
"Status Code": "200 OK"
"Response Body" : 
{
"numFound": "56047",
"start": "0",
"docs": [
{
"cover_i": "5684830",
"ebook_count_i": 14,
"author_name": [ "Rand McNally"],
}
}
}
}

我可以根据标题和响应主体信息的选择进行筛选/查找吗目前,我正在使用正则表达式,例如apiData:/5684830/

使用regex的方式是存储数据的完美解决方案

通过使用mongodb shell v4 中的构建功能或其他功能,从Mongo中的字段字符串中提取标题和响应主体信息的选择

很遗憾,您有字符串。所以这是唯一的选择。

但是,如果您可以将它们存储为mongo中的field:value,那么您就可以使用漂亮的聚合框架,在该框架中,您可以以高效的方式进行许多查询。

最新更新