написать сложный поисковый запрос с помощью оператора $ positioning + embedded document + mongodb + nodejs [duplicate]

Существует множество пакетов, предлагающих функции na.locf (NA Last Observation Carried Forward):

  • xts - xts::na.locf
  • zoo - zoo::na.locf
  • imputeTS - imputeTS::na.locf
  • spacetime - spacetime::na.locf

А также другие пакеты, в которых это функция названа по-разному.

2
задан BatScream 20 December 2015 в 21:35
поделиться

1 ответ

Используйте оператор позиционирования ( $ ), чтобы проецировать только первый соответствующий вспомогательный документ.

db.t.find({"array":{"type":"dog", "name":"Steve"}},{"array.$":1})

Используя meteor, вам придется придерживаться агрегации , так как оператор positional не работает:

db.t.aggregate([
{$match:{"array.type":"dog","array.name":"Steve"}},
{$unwind:"$array"},
{$match:{"array.type":"dog","array.name":"Steve"}}
])
3
ответ дан BatScream 18 August 2018 в 23:44
поделиться
  • 1
    В запросе на стороне сервера, который похож на ваш, действительно возвращает массив с согласованными элементами, но на стороне клиента (minimongo) они возвращают весь массив. – expeerd 20 December 2015 в 21:48
  • 2
    Не уверен, что проблема - github.com/meteor/meteor/issues/153 все еще открыта. Если вам нужно перебирать все вспомогательные документы, как в stackoverflow.com/questions/27951102/… – BatScream 20 December 2015 в 21:53
  • 3
    @expeerd - вам, возможно, придется придерживаться результата aggregating в minimongo. См. Мой обновленный ответ. – BatScream 20 December 2015 в 21:59
  • 4
    Извините за поздний ответ. Aggregate работает для меня, но имеет только серверную реализацию и не реагирует. – expeerd 29 December 2015 в 22:40
Другие вопросы по тегам:

Похожие вопросы: