1

我想知道:在我的 map reduce 函数中,我可以将“父”属性作为变量吗?像那样 :

function (doc, meta) {

  var key,value;
    if(doc.type == "mainForums" && doc.parent == **VAR**){
   key = [doc.type,doc.id]
   value = {Id : doc.id, Title : doc.title, Description : doc.description, Parent: doc.parent, HasChild : doc.hasChild, Level : doc.level, ImageUrl : "http://icon.donanimhaber.com/mobile-forum-icons/" + doc.iconPath, AvarageColor: doc.avarageColor,  RepMode : doc.repMode, iconPath : doc.iconPath, MessageCountThisWeek : doc.messageCountThisWeek, TopicCountThisWeek : doc.topicCountThisWeek}

  emit(key, value);
  }
}

由于我在 couchbase 控制台上创建 map reduce 函数,我不知道如何向该函数添加变量。我在 MVC 上做映射部分,如下:

var tempForum = new Forum
                {
                    Id = item.Id,
                    Title = item.Title,
                    Description = item.Description,
                    HasChild = item.HasChild,
                    Level = item.Level,
                    iconPath = item.iconPath,
                    Parent = item.Parent,
                    IsFavorite = item.IsFavorite,
                    TopicCountThisWeek = item.TopicCountThisWeek,
                    MessageCountThisWeek = item.MessageCountThisWeek,
                    RepMode = item.RepMode,
                    ForumExtra = item.ForumExtra
}

在屏幕上正确打印 json。我应该把移动(android)程序员给我的东西当作一个变量,比如说 4,然后从 sync_gateway 给他带来 parent=4 文档。或者android程序员应该做那个地图减少的事情吗?

也许我应该忘记视图并在这种情况下只使用 N1QL?因为我可以用 N1QL 来做,但我也想用视图来做,因为我以后可能需要视图。我不确定什么是最好的,我真的很困惑。

非常感谢。

4

1 回答 1

0

我不认为这对视图来说是一个很好的用例,它不能被参数化,也不能真正构建以返回完整的文档层次结构。

valueyouemit是存储在索引中的内容(并传递给函数reduce),因此存储完整内容确实是多余的,通常不是一个好主意。父位的可配置数量与支持 AFAIK 的视图相比更远。

所以我建议坚持使用 N1QL,或者找到一种方法在服务器(N1QL)上做一半,在客户端做一半?

于 2016-05-11T18:32:06.270 回答