Java 如何对存储在mongodb中的元数据进行分类

Java 如何对存储在mongodb中的元数据进行分类,java,mongodb,metadata,taxonomy,Java,Mongodb,Metadata,Taxonomy,我提取了一些文件(pdf、html、txt、doc)的元数据,并以json格式在mongodb中进行了排序。 我的mongodb集合中的示例文档如下 {"Author: ":null,"Title: ":"java Syllabus","File name: ":"sample.htm"} {"Author: ":null,"Title: ":"php Syllabus","File name: ":"sample1.htm"} {"Author: ":null,"Title: ":null,"

我提取了一些文件(pdf、html、txt、doc)的元数据,并以json格式在mongodb中进行了排序。 我的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"}
我的要求是对文档中的上述字段进行分类。这可能吗?如果可能,请建议我。 感谢“分类法”,您是否希望为每个文档存储任意键/值对,然后再根据这些值进行查询?你可能会发现一个有用的资源

要点是顶级文档将有一个包含零个或多个对象数组的字段。这些对象中的每一个都将在其各自的字段中包含键和值。然后,可以在数组中的键/值字段上创建。虽然是复合的,但多键索引不能包含多个数组字段(对每个数组中的元素进行索引可能会很快失控),在这种情况下,我们对同一数组中的两个字段进行索引

要使用示例数据,您可能有以下内容:

> 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 });
根据链接博客文章中的示例,您可以按键/值条件进行查询,以确保键/值都包含在同一数组元素中