如何查找缺少字段的Cloudant记录

时间:2016-10-25 09:56:31

标签: python python-3.x couchdb cloudant

我有一个包含这样的记录的数据库

{
  "_id": "eaed1a721cd763c68f7db76862cbf2c1",
  "_rev": "4-2f99dc06018a72af40143b47f0825aaa",
  "categorisationComments": "null",
  "description": "A mobile image-, video-sharing and social network service",
  "appName": "Instagram",
  "baseUrl": "instagram.com",
  "appId": 67,
  "currentStatus": 3,
  "primaryCategory": "Social Media"
}

我遇到的问题是,其中大约有7000个,用Python和couchdb读取它们需要很长时间。 当我加载数据时,为appId分配了一个值(完全没有理由)-1;这是一个糟糕的选择。 因为这是我的Python脚本窒息

if doc['appId'] == -1: KeyError: 'appId'

所以,我似乎有一个缺少appId字段的记录。

如何创建Cloudant查询或couchdb搜索以查找我的任性记录?我真正想要的是一个查询,因为couchdb读取每一行大约需要30分钟

1 个答案:

答案 0 :(得分:1)

在Cloudant仪表板中,单击“新建视图”并添加“地图”功能,如此

function(doc) {
  if (typeof doc.appId === 'undefined') {
    emit(doc._id, null);
  }
}

Cloudant将通过此功能提供数据库中的所有文档。任何缺少'appId'属性的都将形成一个包含文档id和'null'的索引。索引建立后(几秒钟),您应该会在窗口右侧看到任何缺少ID的文档。

有关在Cloudant中创建MapReduce视图的更多详细信息,请参阅https://docs.cloudant.com/creating_views.html