MongoDB映射大量数据

时间:2018-10-30 12:58:48

标签: database mongodb mongodb-query mapping data-retrieval

我的任务是(有效地)将给定的对象数组映射/转换为存储在MongoDB集合中的值,并且一直在努力寻找做到这一点的最佳方法。集合的文档方案如下:

{
  value: {
    type: String,
    unique: true,
    required: true,
    minLength: 1
  },
  translation: {
    type: String,
    required: true,
    minLength: 1
  },
  mapping: {
    type: Map,
    of: String
  }
}

文档的示例为:

{
  value: "ex",
  translation: "example",
  mapping: {
    "0":"No examples",
    "1":"One example"
  }
}
{
  value: "sp",
  translation: "sample",
  mapping: {
    "0":"No samples",
    "1":"One sample"
  }
}

收到的输入是一个对象数组:

[{"name": "ex", "value": "0"}, {"name": "sp", "value": "1"}]

(映射后)需要返回的内容类似于:

[{"name": "example", "value": "No examples"}, {"name": "sp", "value": "One sample"}]

我已经想到了多种方法来实现这一目标:

  1. 为输入数组中的每个对象创建一个MongoDB findOne查询,如果找到,则将值映射到数据库中的值。
  2. 创建一个单一的MongoDB查询,查找所有需要的文档,遍历结果并将输入数组中的值映射到文档中找到的值。
  3. 创建一个MongoDB查询,以查找所需的所有文档,并将值映射到DB值

很明显,选项1并不是那么好。我需要一些帮助来确定最佳的行动计划。例如,是否有可能创建单个MongoDB查询来查找所有文档并返回与输入中“值”属性相对应的正确DB值(选项3)?

还是应该使用其他方法解决此问题?

0 个答案:

没有答案