我有一个查询,它将运行以下内容:
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.
ED设置三:
我如何编辑:
..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
答案 0 :(得分:0)
您的查询是错误的,您正在寻找起始值大于186且小于186的文档
请尝试以下查询:-
.findOne({start: {"$gte": 169}, end: {"$lte": 268}}).then(function (winner) {
或
.findOne({end: {"$lte": 186}}).then(function (winner) {