سؤال

ولدي وثيقة المستخدم الذي يحتوي على حقل المجموعة. هذا المجال هو مجموعة من هويات المجموعة. وأود أن أكتب وجهة النظر التي يعود (groupid كمفتاح) -> (مجموعة من مستندات المستخدم كما فال). هذه العملية رسم الخرائط يبدو وكأنه بداية جيدة.

function(doc)
{
  var type = doc.type;
  var groups = doc.groups;
  if(type == "user" && groups.length > 0)
  {
    for(var i = 0; i < groups.length; i++)
    {
      emit(groups[i], doc);
    }
  }
}

ولكن هناك شيئا خطأ واضح جدا مع محاولة مني في تخفيض:

function(key, values, rereduce)
{
  var set = [];
  var seen = [];
  for(var i = 0; i < values.length; i++)
  {
    var _id = values[i]._id;
    if(seen.indexOf(_id) == -1)
    {
      seen.push(_id);
      set.push(values[i]);
    }
  }
  return set;
}

وأنا على التوالي كاوتش دي بي 0.10dev. أي عن تقديره للمساعدة.

هل كانت مفيدة؟

المحلول

والجواب على هذا بعد التدقيق على IRC كاوتش دي بي هو أنك لا تحتاج إلى تقليل لهذا على الإطلاق. مجرد توفير مفتاح = groupId، شيء كما يلي:

HTTP: // المضيف المحلي: 5984 / somedb / _design / bygroup / _view / كل شيء؟ مفتاح = 2

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top