gpt4 book ai didi

javascript - Mongoose.find() 参数化没有找到任何东西

转载 作者:行者123 更新时间:2023-12-01 02:59:19 25 4
gpt4 key购买 nike

我有一个简单的函数,可以从 Node 执行两个对 mongoDB 的查询

function getEstablecimientosParadas(req,res){
let tipo=req.body.tipoParada;
let id_esta=req.body.id_esta;

let paradas ={
paradasMetro:[],
paradasCercanias:[],
paradasBus:[]
}

console.log("id_esta_param:"+id_esta);
var find1= EstablecimientosMetro.find();
var find2= EstablecimientosCercanias.find({"id_establecimiento":id_esta});
var find3= EstablecimientosBus.find({"id_establecimiento":id_esta});

find1.exec((err,paradasM) => {
if(err){
console.log('Error en la peticion(Paradas metro)');
}else{
if(!paradasM){
console.log('No hay paradas de metro');
}else{
paradas.paradasMetro=paradasM;
console.log(paradasM);
}
}
});

find2.exec((err,paradasC) => {
if(err){
console.log('Error en la peticion(Paradas cercanias)');
}else{
if(!paradasC){
console.log('No hay paradas de cercanias');
}else{
paradas.paradasCercanias=paradasC;
console.log(paradasC);
}
}
});

find3.exec((err,paradasB) => {
if(err){
console.log('Error en la peticion(Paradas bus)');
}else{
if(!paradasB){
console.log('No hay paradas de bus');
}else{
paradas.paradasBus=paradasB;
console.log(paradasB);
}
}
});

Promise.all([
find1,
find2,
find3
]).then((value) => {
res.status(200).send({
paradasResponse:paradas,
});
});

}

这就是 console.log() 向我展示的内容:

id_esta_param:59b2a7c4fcaf252adc4416d4
59b2a7c4fcaf252adc4416d4
[ { _id: 59c9416bde59b020c0403b58,
id_parada: 598c9be810ebd9a7a94433f5,
id_establecimiento: 59b2a7c4fcaf252adc4416d4,
id_seccion: 597f96f82769efbe7301f97b,
orden: 4 },
{ _id: 59c9416bde59b020c0403b59,
id_parada: 598c9be810ebd9a7a94433f7,
id_establecimiento: 59b2a7c4fcaf252adc4416d4,
id_seccion: 597f96f82769efbe7301f97b,
orden: 4 } ]
[]
[]

我的问题是我不明白为什么 .find({"id_establecimiento":id_esta) 在他们的集合中找不到任何内容,但是当我执行 .find() 时 没有参数,它会找到所有东西,正如您所看到的,id_establecimiento 参数在请求参数和集合中的 id_establecimiento 字段中是相同的。

PD:另外两个集合有两个文档。

最佳答案

我认为您需要从字符串参数id_esta 创建ObjectID。例如:

import {ObjectID} from 'mongodb';

// ...

const objID = ObjectID(id_esta)

并在查询中使用它,如下所示:

const query = EstablecimientosCercanias.find({'id_establecimiento': objID});

关于javascript - Mongoose.find() 参数化没有找到任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46549111/

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