gpt4 book ai didi

javascript - 如何查询MongoDB中的邻居元素?

转载 作者:可可西里 更新时间:2023-11-01 10:00:45 29 4
gpt4 key购买 nike

我正在实现排名系统。我有一个包含这样元素的集合:

{"_id" : 1, "count" : 32}
{"_id" : 2, "count" : 12}
{"_id" : 3, "count" : 34}
{"_id" : 4, "count" : 9}
{"_id" : 5, "count" : 77}
{"_id" : 6, "count" : 20}

我想编写一个查询,返回一个元素,该元素具有 {"id": 1} 和其他 2 个相邻元素(按计数排序后)。共返回3个元素。

例如:排序后:

9 12 20 32 34 77

查询应返回 20 32 34

最佳答案

你永远不会在一次查询操作中得到这个,但它可以用“三个”查询得到。第一个从所需元素中获取“count”的值,随后的获取“preceding”和“following”值。

var result = [];
var obj = db.collection.findOne({ "_id": 1 }); // returns object as selected
result.push(obj);
// Preceding
result.unshift(db.collection.findOne({
"$query": { "count": { "$lt": obj.count } },
"$orderby": { "count": -1 }
}));
// Following
result.push(db.collection.findOne({
"$query": { "count": { "$gt": obj.count } },
"$orderby": { "count": 1 }
}));

要求在“单个查询”中执行此操作本质上是要求“连接”,而 MongoDB 基本上不会这样做。这是一个 "Set Intersection"离散结果的集合,而在 SQL 中基本上是一个“连接”操作。

关于javascript - 如何查询MongoDB中的邻居元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29066011/

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