Метеор JS, как получить конкретный объект из массива из коллекции? - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь получить конкретное значение объекта из массива элементов.Я обновляю массив, помещая новые элементы в массив элементов, а затем хочу получить последний обновленный элемент из массива.У меня есть _id элемента, который последний раз обновлялся и использует этот запрос, но он возвращает полную запись со всеми элементами.

 let repData = Items.findOne({'_id': rid, 'items._id': newRepId },{ "items.$": 1 });

 {
"errorCode": false,
"data": {
    "_id": "NhNpaN8EHn6uJXfg5",
    "cText": "Let me know you views",
    "aId": "YxEjFqsE3czZZJvgP",
    "cId": "EwDS5iYSEuGThHE38",
    "datePosted": "2019-07-11T07:13:59.177Z",
    "items": [
        {
            "reText": "pppppp sssssssss",
            "reOwn": "FK7KQ7eMs7QvX5uHh",
            "datePosted": "2019-07-11T07:19:17.722Z",
            "_id": "b87e532807ce37ff83d37a09"
        },
        {
            "reText": "bbbbbb vvvvvvvv",
            "reOwn": "FK7KQ7eMs7QvX5uHh",
            "datePosted": "2019-07-11T07:22:36.089Z",
            "_id": "28d2bf66a517bfcfaa0fabca"
        },
        {
            "reText": "mmmmmnnnnnn bbbbbbvvvvv",
            "reOwn": "FK7KQ7eMs7QvX5uHh",
            "datePosted": "2019-07-11T07:23:20.587Z",
            "_id": "85f52e3e3a8ae6d18e98dbb2"
        },


}
 }

1 Ответ

0 голосов
/ 12 июля 2019

Поиск Mongo всегда даст вам полную запись, вы можете ограничить элементы, которые вы выбираете, но вы не можете отфильтровать массив элементов, вам придется сделать это потом, что-то вроде этого:

  const lastItem = repData.items
    .sort((a, b) => new Date(a.datePosted)-new Date(b.datePosted))
    .pop()
  console.log(lastItem)

По сути, он сортирует массив по дате (возможно, не обязательно), а затем вставляет последний элемент в lastItem

...