1

正在研究一种通过 async.map 组合来自多个数据源的数据的方法。但是,我对新数据结构有疑问,这是将多个文档合并为一个的结果……每条记录周围都有额外的括号。

这是我正常的 json 文档的格式:

 {
 "_id": "527b16584930484431f054be",
 "caption": "lucky",
 "created_time": "1383652572",
 "full_name": "kkelcie",
 },
{
"_id": "527b16584930484431f054bd",
"caption": "Me with all my friends on our day off work. ",
"created_time": "1383798277",
"full_name": "zeftodeathbitch"
}

这是他对来自多个查询的新数据进行格式化的方式:

[
 {
  "_id": "52799ef14930484431ed58ed",
  "caption": "☀",
  "created_time": "1383698900",
  "full_name": "andreSDFFSdfazapata"
 }
],
[
 {
  "_id": "5279a7514930484431ed6b2f",
  "caption": "Clear Lake",
  "created_time": "1375497332",
  "full_name": "SCALLSDFFYSWAG"
  }
]

所以....如何去掉每个特定记录周围的方括号?现在没有任何工作:)

4

1 回答 1

1

如果我们在这里讨论您的问题,您可能需要重写您的查询:

async.map(arLimit, function(eachrecord, callback){

  UGC_DB_Model.findOne().skip(eachrecord).limit(-1).exec(function(err, result) {
    if (err) {
      callback(err);
    } else {
      callback(null, result);
    }
  });

}, function(err, result) {
  if (err) return next(err);
  console.log("(it's empty): " + result); 
});

这使用findOne而不是find; findOne将始终返回(最多)一个结果,而find将返回多个(作为数组)。但是因为无论如何您都将结果限制为一个,findOne所以更合适。

于 2013-11-10T11:45:50.743 回答