我找不到在数组中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

最佳答案

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

选择器示例:

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

关于javascript - 无法从对象数组中选择第一个对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50898256/

10-12 17:58