删除db

时间:2018-04-08 15:43:52

标签: pouchdb

这是我的db.find():

db.createIndex({
  index: {
    fields: ['username', 'date'],
    name: 'usernameDateIndex',
    ddoc: "usernameDateIndex"
  }
}).then(() => {
  db.find({
    selector: {
      username: 'org.couchdb.user:' + name
    },
    sort: [{username: 'desc'}, {date:'desc'}],
    use_index: 'usernameDateIndex'
  }).then(result => {
    // Works fine. I get what is expected
  }).catch(error => {
  });
}).catch(error => {
});

这很好,并返回一个包含六个文档的数组。然后我删除了一个这样的文档:

doc._deleted = true;
db.put(
  doc
).then(response => {
  // db.allDocs() returns 5 docs this is correct
  // db.find() returns an empty array
}).catch(error => {
});

删除后,db.AllDocs()正常工作,但上面列出的相同db.createIndex和db.find()返回并清空数组。在没有db.createIndex()的删除之后我也尝试了db.find(),我仍然得到一个空数组,我没有错误。

我在这里错过了一步吗?删除后是否需要进行某种提交?我是否需要删除索引并再次创建它?我是否需要使用CouchDB远程服务器强制复制?不知道发生了什么。

最后一点,这是一个使用pouchdb-react-native和pouchdb-find软件包的React Native应用程序。它的后备存储是AsyncStorage。

1 个答案:

答案 0 :(得分:-1)

根据答案的第2项,在this answer抓一个战利品:

  
      
  1. 在查询时,索引只能在其所有索引字段中使用   需要根据选择器存在。例如,如果你的   index包含字段A和B,但您只查询A,我们无法使用   索引因为它不包含包含A但不包含B的文档。
  2.   

也许这就是你问题的原因。