【发布时间】:2019-08-07 22:34:53
【问题描述】:
我有一个查询将运行以下内容:
var RandomNumber = rand(Start,End); // 186
..findOne({start: {"$gte": RandomNumber }, end: {"$lte": RandomNumber }}).then(function (winner) {
在我的数据库中,我有以下输入:
_id:5c8d037c5a35fd36e4b27e10
userid:"5c8522a96bcca9268c0753fe"
start:169
end:268
time:1552745340629
如何重组我的查询以使其返回输入数据库?因为 186 在开始值和结束值之间。
编辑:也尝试过在查询中不带引号。我特别不确定如果 start 或 end 是正确的值,或者该值是否介于这两者之间,我将如何使查询匹配。
编辑两个:
我也有
var RandomNumber = rand(Start,End); // equals 186. that i need to get the winning row.
编辑三:
我该如何编辑:
..findOne({start: {"$gte": RandomNumber }, end: {"$lte": RandomNumber }}).then(function (winner) {
其中 RandomNumber 等于 186,只给我数据库中的记录 186的值存在吗? (表示开始值和结束值之间)。
这是我的数据库中的更多示例:
_id:5c8d037c5a35fd36e4b27e10
userid:"5c8522a96bcca9268c0753fe"
start:1
end:50
time:1552745340629
_id:5c8d037c5a35fd36e4b27e10
userid:"5c8522a96bcca9268c0753fe"
start:51
end:168
time:1552745340629
_id:5c8d037c5a35fd36e4b27e10
userid:"5c8522a96bcca9268c0753fe"
start:169
end:268
time:1552745340629
期望的输出:
_id:5c8d037c5a35fd36e4b27e10
userid:"5c8522a96bcca9268c0753fe"
start:169
end:268
time:1552745340629
【问题讨论】:
-
你试过不加引号吗?
{start: {$gte: 186}, end: {$lte: 186}} -
是的@AnuragSrivastava。试过了
-
“两个字段之间的数字”实际上是我使用的一个面试问题。你想要“开始小于”和“结束大于”。因此,基本上是单个字段之间的“逆”。
-
我将如何完成这个@NeilLunn?因为我只知道它等于开始,或等于结束,或在它们之间。
-
查看链接的问题和答案,并思考什么是合乎逻辑的。
{ start: { $lte: 186 }, end: { $gte: 186 } }并简单地比较该逻辑,看看它是如何应用的。
标签: javascript mongodb mongoose