我已经提取了一些文件(pdf,html,txt,doc)的元数据,并以json格式在mongodb中进行了stroed。 我的mongodb集合中的示例文档如下
{"Author: ":null,"Title: ":"java Syllabus","File name: ":"sample.htm"}
{"Author: ":null,"Title: ":"php Syllabus","File name: ":"sample1.htm"}
{"Author: ":null,"Title: ":null,"File name: ":"sample2.pdf"}
我的要求是对文档中的上述字段进行分类。这可能吗?如果有可能请建议我。 感谢
答案 0 :(得分:2)
通过“分类法”,您希望为每个文档存储任意键/值对,然后按这些值进行查询吗?您可能会发现MongoDB Content Taxonomy Schema是一个有用的资源。
要点是顶级文档将包含一个包含零个或多个对象数组的字段。每个对象都将在其自己的字段中包含键和值。然后,您可以在数组中的键/值字段上创建compound,multi-key index。虽然复合,多键索引不能包含多个数组字段(事件可能很快就会因为从每个数组中索引Cartesian product个元素而失控),在这种情况下,我们会在同一个数组中索引两个字段。 / p>
要使用示例数据,您可能拥有以下内容:
> db.foo.insert({
filename: "sample.htm",
taxonomy: [
{ k: "author", v: "Bob Smith" },
{ k: "title", v: "Java Syllabus" }
]
});
> db.foo.ensureIndex({ "taxonomy.k": 1, "taxonomy.v": 1 });
根据链接博客文章中的示例,您可以使用$elemMatch
按键/值条件进行查询,以确保键/值都包含在同一个数组元素中。