【发布时间】:2015-09-12 14:02:34
【问题描述】:
我是 Cloudant 新手,但发现它对 IoT 数据的第一阶段很有用。但是我需要根据与 _id 分开的 id 字段订阅更改,并且对于发送数据的传感器来说是唯一的。到目前为止我看到的例子对这个问题没有帮助。我现在正在做的是为每个帖子发送一个单独的 json 文档,所以它应该返回带有这个传感器 ID 的新文档。 json 文档有时会在第二个出现,但也可能是几个小时。
我在 .Net 网络应用程序中使用 c#。下面的代码创建对 Cloudant 数据库的调用,并根据为字段 SensorID 创建的索引返回我想要的数据,
json =
{{
"selector": {
"SensorID" : "h7365cf3-17bc-4422-b436-f7bcf12b2e2a"
},
"fields": [
"Data"
]
}}
url = My Cloudant url + ” /_find”.
这将返回所有带有与 json 查询中 SensorID 值对应的 sensorID 字段的文档,但仅返回嵌套在 Data 字段中的每个文档的 json 对象。
using (WebClient client = new WebClient())
{
byte[] postBytes = System.Text.ASCIIEncoding.UTF8.GetBytes(json.ToString());
client.UseDefaultCredentials = true;
client.Credentials = new NetworkCredential(username, password);
client.Headers[HttpRequestHeader.ContentType] = "application/json";
var response = client.UploadData(url, "POST", postBytes);
JObject iJson = JObject.Parse(client.Encoding.GetString(response));
return parseIncoming(iJson);
}
当调用 My Cloudant url +“GET /_DB_UPDATES”时,它返回有关整个数据库更改的信息。这可以设置为连续馈送。
我希望这意味着我可以订阅文档中的更改以获取新数据,例如 Redis Pub/Sub。我开始认为情况可能并非如此,但如果有人能告诉我如何做到这一点,我将不胜感激。
【问题讨论】:
-
嗨,Dan,您需要在此处发布一些代码,以便有人可以提供帮助。
-
请查看 _changes 查询。当您使用“feed=continuous”时,它可能会对您有所帮助。详情看这里docs.cloudant.com/database.html#get-changes
-
@AlexdaSilva 的评论很有帮助。在查看他们的评论后,我实际上能够找到关于更改提要的最新文档,这里是cloud.ibm.com/docs/…
标签: couchdb ibm-cloud cloudant