【问题标题】:PouchDB find in arrayPouchDB 在数组中查找
【发布时间】:2017-03-14 05:26:48
【问题描述】:

我在 PouchDB 中插入了以下文档(一个):

{ 
 "_id": "5eaa6d20-2019-44e9-8aba-88cfaf8e02542",
 "data" = [
  {
    "desc": "VERSION",
    "id": 1452,
    "value": "32"
  },
  {
    "desc": "FIRM",
    "id": 1453,
    "value": "3232"
  },
  {
    "desc": "NONVERSION",
    "id": 1454,
    "value": "32213"
  },
  {
    "desc": "VERSION",
    "id": 1455,
    "value": "32_1"
  },
  {
    "desc": "VER",
    "id": 1456,
    "value": "32_3"
  }
]}

我正在寻找的是获取具有 desc = "VER" 或以 "VER" 开头的 JSON 对象的选项。实现这一目标的最佳方法是什么?

我已经尝试了以下代码:

this.db.find({
    "selector" : {
      "data" : {
        "$elemMatch" : {
          "desc": { $eq: 'VER'},
        }
      }
    },
    fields: ['desc', 'value'],
}).then((result) =>  {
  console.log('RESULT: ' + result);
}).catch((error) => {
  console.log('Error while searching', error)
});

任何提示为什么这不返回任何结果?

问候!

【问题讨论】:

  • 您能重新格式化 JSON 文档吗?这不是有效的 JSON,我很困惑。
  • 好的,这似乎以返回完整文档而不是包含搜索元素的单个对象的方式工作。任何想法如何返回存在的内部对象?
  • 我认为您需要在客户端拆分它们。

标签: angular pouchdb


【解决方案1】:

我通过使用我在此处详细介绍的标准索引/查询解决方案实现了这一点:

PouchDB emit object from an array of objects

问候!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 2012-11-19
    • 2017-04-13
    相关资源
    最近更新 更多