我想删除MongoDB中的空文档。 MongoDB的查询应该如何。我只想过滤掉不是每个字段都为空的文档。我只想删除所有字段等于Null的那个
案例:
/* 1 */
{
"_id" : ObjectId("57601e880855160fbb496f50"),
"instemail" : [],
"instProjekt1name" : [],
"inststrasse" : [],
"institutionID" : [],
"insttelefax" : [],
"insttelefon" : [],
"institutionsname" : [],
"instplz" : [],
"insturl" : [],
"instLand" : []
}
/* 2 */
{
"_id" : ObjectId("57601e880855160fbb496f51"),
"instemail" : [],
"instProjekt1name" : [],
"inststrasse" : [],
"institutionID" : [],
"insttelefax" : [],
"insttelefon" : [],
"institutionsname" : [],
"instplz" : [],
"insturl" : [],
"instLand" : []
}
/* 3 */
{
"_id" : ObjectId("57601e880855160fbb496f52"),
"instemail" : [
"postmaster@dfg.de"
],
"instProjekt1name" : [
"\n\t ERA-Chemistry: Novel Pt-poor catalysts for the electrocatalytic O2 reduction based on modified, nanostructured metal oxides\n\t ",
"\n\t \"Welten\" von Mittelschichtangehörigen in zwei Satellitenstädten JABOTABEKs (Indonesien)\n\t ",
"\n\t Rätselspiele. Edition und Kommentar\n\t ",
"\n\t Analysis of the function of Presenilin in Development and Neurodegeneration in Drosophila melanogaster\n\t ",
"\n\t Estimating selection parameters and identifying loci under recent selection based on genome-wide sequence data\n\t ",
"\n\t Untersuchung polymerischer Stabilsation in kolloidalen Systemen unter Verwendung neuartiger feldtheoretischer Simulationen\n\t ",
"\n\t Entwicklung hämatopoietischer Stammzellen aus humanen ES- und iPS-Zellen\n\t ",
"\n\t Untersuchung polymerischer Stabilisation in kolloidalen Systemen unter Verwendung neuartiger feldtheoretischer Simulationen\n\t "
],
"inststrasse" : [
"\r\n\t \t \t Kennedyallee",
"40"
],
"institutionID" : [
"5000"
],
"insttelefax" : [
"+49 228 8852777"
],
"insttelefon" : [
"+49 228 8851"
],
"institutionsname" : [
"Deutsche Forschungsgemeinschaft"
],
"instplz" : [
"53175",
"Bonn"
],
"insturl" : [
"http://www.dfg.de"
],
"instLand" : [
"\r\n\t \t Deutschland\r\n\t \t "
]
}
预期:
/* 3 */
{
"_id" : ObjectId("57601e880855160fbb496f52"),
"instemail" : [
"postmaster@dfg.de"
],
"instProjekt1name" : [
"\n\t ERA-Chemistry: Novel Pt-poor catalysts for the electrocatalytic O2 reduction based on modified, nanostructured metal oxides\n\t ",
"\n\t \"Welten\" von Mittelschichtangehörigen in zwei Satellitenstädten JABOTABEKs (Indonesien)\n\t ",
"\n\t Rätselspiele. Edition und Kommentar\n\t ",
"\n\t Analysis of the function of Presenilin in Development and Neurodegeneration in Drosophila melanogaster\n\t ",
"\n\t Estimating selection parameters and identifying loci under recent selection based on genome-wide sequence data\n\t ",
"\n\t Untersuchung polymerischer Stabilsation in kolloidalen Systemen unter Verwendung neuartiger feldtheoretischer Simulationen\n\t ",
"\n\t Entwicklung hämatopoietischer Stammzellen aus humanen ES- und iPS-Zellen\n\t ",
"\n\t Untersuchung polymerischer Stabilisation in kolloidalen Systemen unter Verwendung neuartiger feldtheoretischer Simulationen\n\t "
],
"inststrasse" : [
"\r\n\t \t \t Kennedyallee",
"40"
],
"institutionID" : [
"5000"
],
"insttelefax" : [
"+49 228 8852777"
],
"insttelefon" : [
"+49 228 8851"
],
"institutionsname" : [
"Deutsche Forschungsgemeinschaft"
],
"instplz" : [
"53175",
"Bonn"
],
"insturl" : [
"http://www.dfg.de"
],
"instLand" : [
"\r\n\t \t Deutschland\r\n\t \t "
]
}
声明必须如何?任何人都可以帮助我吗?
答案 0 :(得分:1)
我认为您应该在您的字段上使用$exists
进行调度和查询,这些字段存在= false。
db.collection.find({ field1: { $exists: false},field2: { $exists: false}...})
https://docs.mongodb.com/manual/reference/operator/query/exists/
或在$in
{$in: [ [{}], [{}, {}] ] }
https://docs.mongodb.com/manual/reference/operator/query/in/
看看这个link