【发布时间】:2016-01-28 21:16:13
【问题描述】:
我有一些以模型树结构组织的文档(深度是可变的!)。不幸的是,一些文件丢失了,我需要找到那些断链。如您所见,该链中的最后一个文档始终具有 target 字段。这是起点,我必须使用parent 向上看。该链中的最后一个元素始终具有字段type。
{
"_id" : "K7NSxNEnNSr9nCszR",
"title" : "title",
"type" : "book",
"ancestors" : [ ]
}
{
"_id" : "diyvwYz66yoTCTt9L",
"field" : "something",
"parent" : "K7NSxNEnNSr9nCszR",
"ancestors" : [
"K7NSxNEnNSr9nCszR"
]
}
{
"_id" : "diyvwYz66yoTCTt9L",
"field" : "anything",
"target" : "D2YuXtM6Gzt4eWaW2",
"parent" : "QWvdAyftSGANM3zy8",
"ancestors" : [
"K7NSxNEnNSr9nCszR",
"QWvdAyftSGANM3zy8"
]
}
我需要知道的是是否缺少任何父元素或是否缺少最后一个元素(=现有类型)。
var broken = [];
Collection.find({ target: { $exists: true }}).forEach(function(element) {
var startDocID = element._id;
if (Collection.find({ _id: element.parent }).count() === 0)
broken.push(startDocID);
});
console.log(broken);
但这并不好用,因为我需要使用循环向上直到顶部文档(= 类型存在)。
【问题讨论】:
标签: javascript mongodb meteor