Node.js 如何使用Couchbase的复合键创建条目?

Node.js 如何使用Couchbase的复合键创建条目?,node.js,couchbase,Node.js,Couchbase,我在NodeJS中运行了一些代码,用于设置数据库中的文档: cb.set(req.body.id, req.body.value, function (err, meta) { res.send(req.body); }); 我读过关于复合键的书,这项功能似乎可以简化我的生活。问题是如何正确地添加带有复合键的条目?下面的代码失败,并显示预期为字符串的消息,没有数组 cb.set([req.body.id, generate_uuid()], req.body

我在NodeJS中运行了一些代码,用于设置数据库中的文档:

    cb.set(req.body.id, req.body.value, function (err, meta) {
      res.send(req.body);
    });
我读过关于复合键的书,这项功能似乎可以简化我的生活。问题是如何正确地添加带有复合键的条目?下面的代码失败,并显示预期为字符串的消息,没有数组

    cb.set([req.body.id, generate_uuid()], req.body.value, function (err, meta) {
      res.send(req.body);
    });
那么我是否应该将数组转换成像“[“patrick_bateman”,“uuid_goes_here”]”这样的字符串呢?

如果你说的是

此计算密钥不是由用户直接设置的,而是由couchbase服务器在您使用view时生成的。在couchbase视图中,您可以创建使用“计算键”的映射函数。例如:

map: function() {
  if (doc.type === "mytype"){
    emit([doc.body.id, doc.uuid], null);
  }
}
在这种情况下,couchbase将通过“compund键”创建索引,当您查询视图时,您将能够设置“两个”键

这是很有用的,例如,在需要获取一些随时间范围变化的文档的情况下。例如,您有类型为“message”的文档,并且希望获取从
4
7
期间创建的所有文档

在这种情况下,映射函数将如下所示:

map: function(){
  if (meta.type === "json"){
    emit([doc.type, doc.timestamp], null);
  }
}
查询将包含参数
startKey=[“message”,4]
endKey=[“message”,7]

但您也可以创建复杂的键,如“message:4”,然后通过简单的get查询它。也就是说,如果您对该消息使用顺序ID(通过使用增量函数),您可以使用简单的
for
循环和
couchbase.get
函数轻松迭代该消息

还可以通过使用nodejs和couchbase创建聊天应用程序来检查这一点