如何将查询写入我的 Cloudant 数据库?
How to write query to my Cloudant database?
我正在尝试为我的 NoSQL 数据库实现正确的查询,但我不知道如何在 Cloudant 中执行此操作。在 SQL 中
SELECT * FROM mydb
WHERE user_permit_doc_id = 10
AND user_tracking_id = 1
我的查询是这样的:
https://293e2cb7-3561-4004-a1c3-58d54f517ee6-bluemix.cloudant.com/user_files/_design/user_tracking/_view/new-view?startkey=["user_permit_doc_id:10"]
它 returns 所有文档,而不仅仅是具有此 ID 的文档。
这是视图的 m Map Reduce 函数
function(doc) {
if(doc.user_tracking_id !== null){
emit(doc);
}
}
我的文档数据库中的文档示例
{
"_id": "6e57baa78c6415beeee788bc786cc53a",
"_rev": "5-f15352bce99c307bd246bda4dc0da75a",
"user_tracking_id": "1",
"user_permit_id": "2",
"user_permit_doc_id": "10",
"user_id": "1",
"_attachments": {
"6y41j4i68cic.jpg": {
"content_type": "image/jpeg",
"revpos": 2,
"digest": "md5-KC+G5tbz2UWZSzlPHvBy/Q==",
"length": 68367,
"stub": true
}
}
}
如果您只想 return 那个特定文档,则必须将 WHERE user_permit_doc_id = 10
合并到您的 map reduce 函数中,如下所示:
function(doc) {
if(doc.user_permit_doc_id === 10 && doc.user_tracking_id === 1){
emit(doc);
}
}
但是,由于您是从 SQL 过来的,您可能更喜欢 Mongo 之类的查询。如果这种查询数据库的方式更适合您,请查看 Cloudant Mango API layer。 API 向 NoSQL 引入了类似于 SQL 的查询,实际上在幕后创建了一个 map reduce 函数。
您可以将视图更改为
function(doc) {
if(doc.user_tracking_id !== null){
emit([user_tracking_id, user_permit_doc_id]);
}
}
然后使用复杂键 [1, 10]
进行查询
我正在尝试为我的 NoSQL 数据库实现正确的查询,但我不知道如何在 Cloudant 中执行此操作。在 SQL 中
SELECT * FROM mydb
WHERE user_permit_doc_id = 10
AND user_tracking_id = 1
我的查询是这样的:
https://293e2cb7-3561-4004-a1c3-58d54f517ee6-bluemix.cloudant.com/user_files/_design/user_tracking/_view/new-view?startkey=["user_permit_doc_id:10"]
它 returns 所有文档,而不仅仅是具有此 ID 的文档。
这是视图的 m Map Reduce 函数
function(doc) {
if(doc.user_tracking_id !== null){
emit(doc);
}
}
我的文档数据库中的文档示例
{
"_id": "6e57baa78c6415beeee788bc786cc53a",
"_rev": "5-f15352bce99c307bd246bda4dc0da75a",
"user_tracking_id": "1",
"user_permit_id": "2",
"user_permit_doc_id": "10",
"user_id": "1",
"_attachments": {
"6y41j4i68cic.jpg": {
"content_type": "image/jpeg",
"revpos": 2,
"digest": "md5-KC+G5tbz2UWZSzlPHvBy/Q==",
"length": 68367,
"stub": true
}
}
}
如果您只想 return 那个特定文档,则必须将 WHERE user_permit_doc_id = 10
合并到您的 map reduce 函数中,如下所示:
function(doc) {
if(doc.user_permit_doc_id === 10 && doc.user_tracking_id === 1){
emit(doc);
}
}
但是,由于您是从 SQL 过来的,您可能更喜欢 Mongo 之类的查询。如果这种查询数据库的方式更适合您,请查看 Cloudant Mango API layer。 API 向 NoSQL 引入了类似于 SQL 的查询,实际上在幕后创建了一个 map reduce 函数。
您可以将视图更改为
function(doc) {
if(doc.user_tracking_id !== null){
emit([user_tracking_id, user_permit_doc_id]);
}
}
然后使用复杂键 [1, 10]
进行查询