首页 > 解决方案 > 无法从对象数组中选择第一个对象

问题描述

我找不到在数组中选择 0 位置的对象的方法。基本上,我一直在寻找可以attributes.prices[0].UnitPrice在任何地方完成这项工作的功能,但找不到答案。我的目标是按范围从...到使用UnitPrice字段选择价格。产品包含价格数组:

prices: [
  {
    ...,
    UnitPrice: 5
  },
  ...
]

尝试了以下查询,但它返回错误:

...
$and: 
[
            { 'attributes.prices': { $in: { UnitPrice: { $gte: price.from } } } },
            { 'attributes.prices': { $in: { UnitPrice: { $lte: price.to } } } }
            // { 'attributes.prices': { $elemMatch: { UnitPrice: { $gte: price.from } } } },
            // { 'attributes.prices': { $elemMatch: { UnitPrice: { $lte: price.to } } } }
]

错误:未知运算符“0” - 应该是 $eq、$lte、$lt、$gt、$gte、$exists、$ne、$in、$nin、$size、$mod、$regex、$elemMatch 之一, $type, $allMatch 或 $all

标签: javascriptcouchdbpouchdb

解决方案


您可以简单地使用attributes.prices.0.UnitPrice.

选择器示例:

{
   "selector": {
      "attributes.prices.0.UnitPrice": 1
   }
}

推荐阅读