mongodb - 如何在没有 subdocumnet 字段的情况下获取子子文档?
问题描述
我在使用命令 find 时遇到问题,我有一个字段 campocr,其中有很多子文档,例如:106719747_112240747078637_2436802243143511917_n 然后我有像 textoextraido1 这样的子子文档。
/* 1 */
{
"_id" : "CCZTn4lHmIh",
"campocr" : {
"106719747_112240747078637_2436802243143511917_n" : {
"textoextraido1" : "Canais investigados pelo STF\nTe atualizei\nDr Marcelo Frazão*\nTerça Livre TV\nm\n=\nN\ncs\n=>\n=\nSN\nCarla Zambelli\nOswaldo Eustáquio\nFoco do Brasil\nBernardo P Kúuster\no\n?\n7\n6\no\no\n<\n&\n+ + +\nRADAR)» AF\n",
"textoextraido2" : "Canais investigados pelo STF\nTe atualizei\nDr Marcelo Frazão*\n= 7\nR Ss\nPR o\ns E\n-\nx\no\n.\n|\n-\no\nCarla Zambelli\nOswaldo Eustáquio\nFoco do Brasil\nBernardo P Kúuster\no\n?\n7\nsã\no\no\n<\n&\nKR + +\nRADAR)» AF\n",
"textoextraido3" : "Canais investigados pelo STF\nTe atualizei\nDr Marcelo Frazão*\nTerça Livre TV\nEnzuh\nCarla Zambelli\nOswaldo Fustáquic\nFoco do Brasil\nBernardo P Kuster\nRADAR\nAF\n",
"opcao" : 2,
"gabarito" : "Canais investigados pelo STF\nTe atualizei\nDr Marcelo Frazão*\nTerça Livre TV\nEnzuh\nCarla Zambelli\nOswaldo Eustáquio\nFoco do Brasil\nBernardo P Kuster\nRADAR AF\n"
},
"106734782_181302733405757_4000795843436713477_n" : {
"textoextraido1" : "Os canais que mais transitam em grupos\nbolsonaristas\nNE Investigados pelo STF\nTerça Livre TV\nrá\nPAPO CONSERVADOR com GUSTAVO GAYER\nDr Marcelo Frazão\nTe atualizei\nNossa Rede Brasil\n34\nRADAR)» AF\n",
"textoextraido2" : "Os canais que mais transitam em grupos\nbolsonaristas\nNE Investigados pelo STF\nTerça Livre TV\nE\nN\nPAPO CONSERVADOR com GUSTAVO GAYER\nDr Marcelo Frazão\nTe atualizei\nNossa Rede Brasil\nRADAR)» AF\n",
"textoextraido3" : "Os canais que mais transitam em grupos\nbolsonaristas\nE Investigados pelo STF\nTerça Livre TV\nré\nPAPO CONSERVADOR com GUSTAVO GAYER\nDr Marcelo Frazão\nTe atualize\"\nNossa Rede Brasil\nRADAR AF\n",
"opcao" : 1,
"gabarito" : "Os canais que mais transitam em grupos\nbolsonaristas\nInvestigados pelo STF\nTerça Livre TV\nPAPO CONSERVADOR com GUSTAVO GAYER\nDr Marcelo Frazão\nTe atualizei\nNossa Rede Brasil\nRADAR AF\n"
},
"106912608_4765797586779104_6329178112583690206_n" : {
"textoextraido1" : "Desinformação do WhatsApp ao\nYouTube\nMN Vídeos que citam a China\nExpropriação na Argentina\nPolítica brasileira\nCoronavírus\nRADAR)» AF\n",
"textoextraido2" : "Desinformação do WhatsApp ao\nYouTube\nMN Vídeos que citam a China\nExpropriação na Argentina\nPolítica brasileira\nCoronavírus\nRADAR)» AF\n",
"textoextraido3" : "Desinformação do WhatsApp ao\nYouTube\nMN Vídeos que citam a China\nExpropriação na Argentina\nPolítica brasileira\nCoronavírus\nRADAR AF\n",
"opcao" : 1,
"gabarito" : "Desinformação do WhatsApp ao\nYouTube\nVídeos que citam a China\nExpropriação na Argentina\nPolítica brasileira\nCoronavírus\nRADAR AF\n"
},
"106626782_204495654206351_4462181095498446162_n" : {
"textoextraido1" : "Os temas mais abordados nos vídeos\ncriticas à imprensa\nminimizações da pandemia\ncríticas a governador(es)\ncríticas ao inquérito das fake naws\ncríticas ao STF\no vV bd o %\n%\n<\n&\n&\ns\no\nRADAR)» AF\n",
"textoextraido2" : "Os temas mais abordados nos videos\ncriticas à imprensa\nminimizações da pandemia\ncríticas a governador(es)\ncríticas ao inquérito das fake news\ncríticas ao STF\no\n?\nvs\n6\nE\no\n<\nf&\n“\ne\nw\nRADAR)» AF\n",
"textoextraido3" : "Os temas mais abordados nos videos\ncriticas à imprensa\nminimizações da pandemia\ncríticas a governador(es)\ncríticas ao inquérito das fake naws\ncríticas ao STF\nRADAR AF\n",
"opcao" : 1,
"gabarito" : "Os temas mais abordados nos vídeos\ncriticas à imprensa\nminimizações da pandemia\ncríticas a governador(es)\ncríticas ao inquérito das fake news\ncríticas ao STF\nRADAR AF\n"
}
},
"fonte" : "aosfatos"
}
我想投射类似的东西:
db.mycollection.find({},{'campocr.$.textoextraido1'})
并将返回:
"106719747_112240747078637_2436802243143511917_n" : {
"textoextraido1" : "Canais investigados pelo STF\nTe atualizei\nDr Marcelo Frazão*\nTerça Livre TV\nm\n=\nN\ncs\n=>\n=\nSN\nCarla Zambelli\nOswaldo Eustáquio\nFoco do Brasil\nBernardo P Kúuster\no\n?\n7\n6\no\no\n<\n&\n+ + +\nRADAR)» AF\n"
},
"106734782_181302733405757_4000795843436713477_n" : {
"textoextraido1" : "Os canais que mais transitam em grupos\nbolsonaristas\nNE Investigados pelo STF\nTerça Livre TV\nrá\nPAPO CONSERVADOR com GUSTAVO GAYER\nDr Marcelo Frazão\nTe atualizei\nNossa Rede Brasil\n34\nRADAR)» AF\n"
},
"106912608_4765797586779104_6329178112583690206_n" : {
"textoextraido1" : "Desinformação do WhatsApp ao\nYouTube\nMN Vídeos que citam a China\nExpropriação na Argentina\nPolítica brasileira\nCoronavírus\nRADAR)» AF\n"
},
"106626782_204495654206351_4462181095498446162_n" : {
"textoextraido1" : "Os temas mais abordados nos vídeos\ncriticas à imprensa\nminimizações da pandemia\ncríticas a governador(es)\ncríticas ao inquérito das fake naws\ncríticas ao STF\no vV bd o %\n%\n<\n&\n&\ns\no\nRADAR)» AF\n"
}
解决方案
k
此解决方案将文档转换为包含和元素的数组,v
允许您使用 投影所需的字段v.field
,然后将数组转换回对象。
[
{
"$project": {
"campocr": {
"$objectToArray": "$campocr"
}
}
},
{
"$project": {
"campocr.k": 1,
"campocr.v.textoextraido1": 1
}
},
{
"$project": {
"campocr": {
"$arrayToObject": "$campocr"
}
}
}
]
与您的示例一起使用的演示: https ://mongoplayground.net/p/1-j8VLtC1iZ
推荐阅读
- python - 从熊猫系列中过滤熊猫df多列
- python - 将json文件中的数据提取到csv中
- c# - 重新加载后如何使我的当前 EXP 整数不重置为 0
- python - 从下拉列表组合中提取所有链接
- javascript - 多个 HTML 输入范围类型的标签总是加起来一个特定的值?
- javascript - 获取最高建筑物名称和高度
- r - 从长字符串中提取值并根据 r 中的括号数创建新列
- javascript - 焦点模糊上的 MS Edge 轮廓伪影?
- angularjs - 在输入日期字段中输入合法日期之前,如何禁用提交按钮?
- android - Android kotlin - 在导航菜单错误中设置文本视图文本:视图不能为空