Javascript Mongoose重新构造查询以匹配结果

Javascript Mongoose重新构造查询以匹配结果,javascript,mongodb,mongoose,Javascript,Mongodb,Mongoose,我有一个将运行以下命令的查询: var RandomNumber = rand(Start,End); // 186 ..findOne({start: {"$gte": RandomNumber }, end: {"$lte": RandomNumber }}).then(function (winner) { 在我的数据库中,我有以下输入: _id:5c8d037c5a35fd36e4b27e10 userid:"5c8522a96bcca9268c0753fe" star

我有一个将运行以下命令的查询:

      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
如何重新构造查询,使其返回输入数据库?as 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) {
其中随机数等于186,只给我数据库中的记录在哪里 186的价值是否存在?(表示起点和终点之间的值)

以下是my db中的更多示例:

_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

您的查询错误,您正在查找起始值大于186但小于186的文档

请尝试此查询:-

.findOne({start: {"$gte": 169}, end: {"$lte": 268}}).then(function (winner) {


您的查询错误,您正在查找起始值大于186但小于186的文档

请尝试此查询:-

.findOne({start: {"$gte": 169}, end: {"$lte": 268}}).then(function (winner) {



你试过不加引号吗<代码>{start:{$gte:186},end:{$lte:186}yes@AnuragSrivastava。我试过“两个字段之间的数字”实际上是我用的一个面试问题。您希望“开始小于”和“结束大于”。因此,基本上是单个场的中间值的“倒数”。我将如何@NeilLunn实现这一点?因为我只知道它等于开始,或等于结束,或介于两者之间。看看相关的问题和答案,同时思考什么是合乎逻辑的<代码>{start:{$lte:186},end:{$gte:186}然后简单地比较一下这个逻辑,看看它是如何应用的。你试过不加引号吗<代码>{start:{$gte:186},end:{$lte:186}yes@AnuragSrivastava。我试过“两个字段之间的数字”实际上是我用的一个面试问题。您希望“开始小于”和“结束大于”。因此,基本上是单个场的中间值的“倒数”。我将如何@NeilLunn实现这一点?因为我只知道它等于开始,或等于结束,或介于两者之间。看看相关的问题和答案,同时思考什么是合乎逻辑的<代码>{start:{$lte:186},end:{$gte:186}然后简单地比较一下这个逻辑,看看它是如何应用的。但是我只知道我的中奖行有票号186,那么我只有186可以开始,而186可以是开始或结束值,但也可以在开始和结束之间。你运行了上面的查询吗,但是理论上除了186之外,我没有其他的数字,所以你不会得到上面的文件。它不在范围内。186在起始值169和结束值268之间,但我只知道我的中奖行有票号186,那么我只能从186开始,而186可能是起始值或结束值,但也在起始值和结束值之间。你运行了上面的查询吗,但是理论上除了186之外,我没有其他的数字,所以你不会得到上面的文件。其不在范围内。186在起始值169和结束值268范围内