NodeJS:查询nodejs中的项目列表

时间:2019-09-08 11:03:11

标签: node.js mongodb

我正在尝试实现公交路线列表应用程序。我的目标是列出通过两个用户给定点(位置)的公交车。

我在后端使用mongodb。数据的简单结构如下:

int main()
{
    vector<vector<int>> vec;
    vector<int> row{1,3,5,7,9,12,34,56};
    int i,n,m,rs,vs;
    rs=row.size();
    cout<<"rs = "<<rs<<endl;
    for(i=0;i<(rs/2);i++)
    {
        vec[i].push_back(row.at(i));
        vec[i].push_back(row.at(i+4));
    }
    vs=vec.size();
    cout<<vs<<endl;
    for(n=0;n<vs;n++)
    {
        for(m=0;m<2;m++)
        {
            cout<<vec[n][m]<<" ";

        }
        cout<<endl;
    }
    return 0;

}

假设:我有所有公共汽车的清单,每辆公共汽车都有旅行路线。

用户提供他的.... { name: 'Bus-N', route: ["Loc1", "Loc2", "Loc3", "Loc4", "Loc5" ], startTime:'..'}, { name: 'Bus-M', route: ["Loc2", "Loc3", "Loc4"], startTime:'..'} .... 和他的start location作为输入。

  1. 如何使用这些输入(起始位置和目的地)在该数据库中进行查询,以列出经过两点的所有公共汽车? 例如:如果输入为destination,则需要输出为(Loc3, Loc4)
  2. 如果有更好的方法(显然应该这样做),请推荐所需的更改。

我是mongodb的新手。请帮忙。 预先感谢。

1 个答案:

答案 0 :(得分:2)

我猜您需要使用数组查询运算符,例如:

  1. $elemMatch
  2. $and

在您的.find.findOne查询期间。您可以在官方的mongoDB文档中找到有关here的更多信息(猫鼬的语法相同)

您还可以在此question中找到有关您的案例的有用信息,该信息解释了mongo数组字段的$all$in运算符的不同行为。

您的查询应如下所示:

collection_name.find({route: { $in : ["start_point", "dest_point" ] } } ).exec(callback)