gpt4 book ai didi

node.js - MongoDB:如何查询具有 `IS NOT(MAX())`条件的文档?

转载 作者:太空宇宙 更新时间:2023-11-03 23:30:56 25 4
gpt4 key购买 nike

这是一个名为test的集合。

{
{"_id": 1, "groupName": "A", lastModified: ISODate("2012-09-17T23:25:56.314Z")},
{"_id": 2, "groupName": "A", lastModified: ISODate("2013-09-17T23:25:56.314Z")},
{"_id": 3, "groupName": "A", lastModified: ISODate("2016-01-10T23:25:56.314Z")},
{"_id": 4, "groupName": "B", lastModified: ISODate("2020-09-17T23:25:56.314Z")},
{"_id": 5, "groupName": "B", lastModified: ISODate("2000-01-17T23:25:56.314Z")}
}

我想使用以下条件查询此集合中的一些文档:

  1. groupName为“A”。
  2. lastModified 不是 的最大值 (ISODate("2016-01-10T23:25:56.314Z"))文档的 lastModified 字段包含 "groupName": "A"

所以在这种情况下,结果应该是

{
{"_id": 1, "groupName": "A", lastModified: ISODate("2012-09-17T23:25:56.314Z")},
{"_id": 2, "groupName": "A", lastModified: ISODate("2013-09-17T23:25:56.314Z")}
}

我正在使用 Node.js 和 node-mongodb-native 模块。我可以在不获取和迭代整个文档的情况下完成此操作吗?我的意思是,我可以在数据库中完成吗?

最佳答案

如果您确实要按 groupName 进行过滤,这个简单的查询可以帮助您获得所需的结果,而无需太多性能开销。

db.test.find({groupName : "A"}).skip(1).sort({lastModifiedAt : -1})

如果您有更复杂的场景/分组/嵌套,您可能需要使用aggregatemapReduce框架。

关于node.js - MongoDB:如何查询具有 `IS NOT(MAX())`条件的文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38419643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com