不能 select 对象数组中的第一个对象

Can't select first object from array of objects

我无法找到 select 数组中第 0 个位置的对象。基本上,我一直在寻找能够在任何地方完成 attributes.prices[0].UnitPrice 的功能,但找不到答案。我的 objective 是 select 价格范围从...到使用 UnitPrice 字段。产品包含价格数组:

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

尝试了以下查询,但 returns 错误:

...
$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、$[= 之一26=]、$regex、$elemMatch、$type、$allMatch 或 $all

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

选择器示例:

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