当前位置: 首页 > 知识库问答 >
问题:

如何过滤猫鼬元素的对象阵列?

仲孙才捷
2023-03-14

我有以下模式:

User: {
  age: Number,
  name: String,
  comments: {
    added: Date,
    body: String
  }
}

我需要得到所有用户,与评论添加大于自定义日期。

示例数据:

[{
  "name": "John",
  "age: 21,
  "comments": [{
     "added": 21-01-12,
     "body": "blabla1"    
  }, {
     "added": 21-02-12,
     "body": "blabla2"    
  }, {
     "added": 21-01-10,
     "body": "blabla3"   
  }]
}, {
  "name": "Bruno",
  "age: 33,
  "comments": [{
     "added": 21-01-10,
     "body": "ololo1"    
  }, {
     "added": 21-02-12,
     "body": "ololo2"    
  }, {
     "added": 21-01-09,
     "body": "ololo3"   
  }]
}]

我需要所有评论大于01-01-11且评论小于此日期的所有用户。

预期结果:

{
  "name": "John",
  "age: 21,
  "comments": [{
     "added": 21-01-12,
     "body": "blabla1"    
  }, {
     "added": 21-02-12,
     "body": "blabla2"    
  }]
}, {
  "name": "Bruno",
  "age: 33,
  "comments": [{
     "added": 21-02-12,
     "body": "ololo2"    
  }]
}

我该怎么做呢?

共有2个答案

贾实
2023-03-14

要筛选Mongoose(和mongo)中的日期字段,需要使用$gte、$gt、$lte、$lte。在您的特定示例中,您需要$gte(大于或等于)

所以,如果您的模型是User.find({comments.added:{$gte:newdate(2011,1,1)}),函数(err,comments){

});

除非有一些原因,我可能会建议你更喜欢更准确的ISODate,你也可以这样做来过滤条目

每小时英里数

孙思源
2023-03-14
const findQuery = [
    {$unwind: "$comments" },
    {$match: {"comments.added": {$gt: lastUpdate} } },
    {$group: {_id: "$_id", comments: {$push: "$comments"} } }
];

User.aggregate(findQuery)
 类似资料:
  • 如何使用匹配数组的多个值从集合中获取对象。例如:我收集了以下数据

  • 我想选择仅在顶级国家/地区之后或仅在其他国家/地区之后的span元素 我已经尝试了 如果我分别尝试这两种XPATH,它们都可以工作,但如果结合使用,它们就不起作用。 我只想选择排名靠前的国家,并将其列入一个列表:,然后过滤掉其他国家。 如果我使用[text()=“Top Countries”]//以下同胞::span所有国家都被选中。例如,<代码>[“澳大利亚”、“几内亚比绍”、“西班牙”、“瑞士

  • 问题内容: 我喜欢使用jq过滤json文件: 给定json包含对象数组: 我想过滤该列表以仅显示ID值为2和4的元素,因此预期的输出为: 如何使用jq过滤json?我玩过select和map,但是没有任何一个可以使用,例如: 问题答案: 从文档: 输入项 输出量 我认为您可以执行以下操作:

  • 问题内容: 我在这里看到了很多关于这个问题的答案,但是我还是不明白(也许是因为他们使用了更多“复杂”的例子)……所以我试图做的是为“客户”建立一个模式将具有两个具有嵌套“子字段”的字段,其他字段可能重复。这是我的意思: 电话 和 电子邮件 可能是一个数组。和地址将不会重复,但是您会看到一些子字段。 我该如何工作? 问题答案:

  • 问题内容: 知道如何在Mongoose模式中为Tree文档建模吗? 一个人怎么能这样呢?整个树是一个文档(理想情况下)。 问题答案: 来自https://groups.google.com/forum/#!topic/mongoose- orm/0yUVXNyprx8 : 通过设计,它可能会起作用。没有测试。为此,我在那里产生了递归引用: 因此,您需要逐步构造递归。

  • 问题内容: 我有两个阵列。我正在用PubSidebar过滤基于groupKey。 如果父母重视:日记或存款或任何价值或角色:公共,我在传递内容数组内的对象时遇到问题。我必须在基于的内容数组中传递值。 如果存在Journals and Deposits,则在内容数组内添加Journals and Deposit数据,包括公共数据。(三个对象) 如果存在Journals,则将Contents数组内的J