Node.js 如何使用Couchbase的复合键创建条目?
我在NodeJS中运行了一些代码,用于设置数据库中的文档: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
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创建聊天应用程序来检查这一点