Meteor JS如何从集合中的数组中获取特定对象?
Posted
技术标签:
【中文标题】Meteor JS如何从集合中的数组中获取特定对象?【英文标题】:Meteor JS how to get specific object from array from collection? 【发布时间】:2019-11-20 23:10:17 【问题描述】:我正在尝试从 items 数组中获取特定的对象值。我通过将新项目推入项目数组来更新数组,然后我想从数组中获取最后更新的项目。我有上次更新并使用此查询的项目的 _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"
,
【问题讨论】:
类似问题:***.com/questions/28680295/… 【参考方案1】:Mongo 搜索将始终为您提供完整的记录,您可以限制您获取的元素,但您不能过滤 items 数组,您必须在之后执行此操作,如下所示:
const lastItem = repData.items
.sort((a, b) => new Date(a.datePosted)-new Date(b.datePosted))
.pop()
console.log(lastItem)
基本上它按日期对数组进行排序(也许没有必要),然后将最后一个元素弹出到lastItem
【讨论】:
我已经用forEach函数整理出来,然后匹配id以上是关于Meteor JS如何从集合中的数组中获取特定对象?的主要内容,如果未能解决你的问题,请参考以下文章
Meteor - 如何在特定时间段后从服务器端方法中自动从集合中删除单个项目?
如何将所有 Meteor Mongo 集合名称检索为 Javascript 数组?
Meteor - 如何在 MongoDB 集合中查找/获取对象并使用方法将其推送到另一个集合中?
如何在 javascript (meteor.js) 中操作返回的 mongo 集合/游标?
Discord.js 集合;如何从集合中的数组中导航和抓取/计数对象
Meteor / MongoDB - 如何证明数组中的任何项目是不是等于特定值,而不是在“真”的情况下从另一个数组中提取项目?