使用变量从couchbase存储桶获取数据

时间:2016-05-04 09:30:50

标签: .net asp.net-mvc couchbase couchbase-sync-gateway n1ql

我想知道:在我的地图缩小功能中,我可以采取" parent"属性作为变量?像那样:

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控制台上创建了地图缩小功能,所以我不知道如何在此功能中添加变量。我在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带他父= 4个文档。或者android程序员应该做那个map减少的东西吗?

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

非常感谢。

1 个答案:

答案 0 :(得分:0)

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

valueemit是存储在索引中的内容(并传递给reduce函数),因此真的多余存储全部内容,一般不是一个好主意。 可配置的父母位数甚至可以支持AFAIK。

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