Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组对象中自动生成Shortid字段的查询在mongodb上不起作用?_Javascript_Arrays_Node.js_Mongodb_Express - Fatal编程技术网

Javascript 数组对象中自动生成Shortid字段的查询在mongodb上不起作用?

Javascript 数组对象中自动生成Shortid字段的查询在mongodb上不起作用?,javascript,arrays,node.js,mongodb,express,Javascript,Arrays,Node.js,Mongodb,Express,我写了一个查询来查找特定对象的数组,但它返回了所有文档 我的目标是 { "_id" : ObjectId("5a253ae1c14d9573f1f91088"), "accountId" : 1, "regionId" : "1", "problemId" : "399", "plannedDeliveryDate" : ISODate("2017-09-18T00:00:00.000Z"), "algorithm" : "

我写了一个查询来查找特定对象的数组,但它返回了所有文档

我的目标是

{
      "_id" : ObjectId("5a253ae1c14d9573f1f91088"),
      "accountId" : 1,
      "regionId" : "1",
      "problemId" : "399",
      "plannedDeliveryDate" : ISODate("2017-09-18T00:00:00.000Z"),
      "algorithm" : "GREEDYWITHREGRET",
      "numberOfTrips" : 0,
      "status" : "",
      "routes" : [ 
          {
              "routeStartTime" : 36000,
              "routeEndTime" : 36450.1496791878,
              "totalRouteTravelTime" : 0.149679187838046,
              "totalRouteCost" : 16.1496791878312,
              "routeServiceTime" : 450,
              "totalRouteDistance" : 0.149679187831155,
              "originalLocationId" : "",
              "routeMethod" : "Manual",
              "routeBreakTime" : null,
              "routeSize1" : 338,
              "routeSize2" : 5719,
              "routeSize3" : 430,
              "_id" : ObjectId("5a253ae1c14d9573f1f91089"),
              "stops" : [ 
                  {
                      "sequence" : 0,
                      "locationId" : "100",
                      "lat" : 28.5901139,
                      "lng" : 77.3078057,
                      "stopName" : "Masafi Park Al Quoz",
                      "locationType" : "DEPOT",
                      "serviceType" : "",
                      "arrivalTime" : 36000,
                      "departureTime" : 54000,
                      "travelTime" : null,
                      "isVisited" : false,
                      "visitedTime" : null,
                      "travelDistance" : null,
                      "travelCost" : null,
                      "serviceTime" : 0,
                      "serviceTimeCost" : 0,
                      "tripNumber" : 0,
                      "_id" : ObjectId("5a253ae1c14d9573f1f910ab"),
                      "orders" : [ 
                          {
                              "_id" : ObjectId("5a253ae1c14d9573f1f910ac")
                          }
                      ],
                      "stopId" : "H1lgqyshzZG"
                  }, 
                  {
                      "sequence" : 1,
                      "locationId" : "11720",
                      "lat" : 28.5950096,
                      "lng" : 77.3141629,
                      "stopName" : "Spinneys TCR",
                      "locationType" : "service",
                      "serviceType" : "Delivery",
                      "arrivalTime" : 36289,
                      "departureTime" : 36319,
                      "travelTime" : 289,
                      "isVisited" : false,
                      "visitedTime" : null,
                      "travelDistance" : 1295,
                      "travelCost" : 0,
                      "serviceTime" : 0.5,
                      "serviceTimeCost" : 0,
                      "tripNumber" : 0,
                      "_id" : ObjectId("5a253ae1c14d9573f1f910a9"),
                      "orders" : [ 
                          {
                              "orderId" : "AQ137O1701233",
                              "SIZE1" : 10,
                              "SIZE2" : 190,
                              "SIZE3" : 10,
                              "_id" : ObjectId("5a253ae1c14d9573f1f910aa")
                          }
                      ],
                      "stopId" : "Bkkg9yinfZG"
                  },
                  {
                      "sequence" : 16,
                      "locationId" : "100",
                      "lat" : 28.5901139,
                      "lng" : 77.3078057,
                      "stopName" : "DEPOT",
                      "locationType" : "DEPOT",
                      "serviceType" : null,
                      "arrivalTime" : 40808,
                      "departureTime" : null,
                      "travelTime" : 232,
                      "isVisited" : false,
                      "visitedTime" : null,
                      "travelDistance" : 1169,
                      "travelCost" : 0,
                      "serviceTime" : 0,
                      "serviceTimeCost" : 0,
                      "tripNumber" : 0,
                      "_id" : ObjectId("5a253ae1c14d9573f1f9108b"),
                      "orders" : [ 
                          {
                              "_id" : ObjectId("5a253ae1c14d9573f1f9108c")
                          }
                      ],
                      "stopId" : "S1ecJi2MZz"
                  }
              ],
              "vehicle" : {
                  "vehicleId" : 67054,
                  "vehicleTypeId" : "",
                  "vehicleFixedCost" : null,
                  "vehicleVariableCost" : null
              },
              "workers" : [ 
                  {
                      "id" : "",
                      "type" : "",
                      "name" : "",
                      "_id" : ObjectId("5a253ae1c14d9573f1f9108a")
                  }
              ],
              "routeId" : "r1qJo2zWG"
          }, 
          {
              "routeStartTime" : 36000,
              "routeEndTime" : 36450.1496791878,
              "totalRouteTravelTime" : 0.149679187838046,
              "totalRouteCost" : 16.1496791878312,
              "routeServiceTime" : 450,
              "totalRouteDistance" : 0.149679187831155,
              "originalLocationId" : "",
              "routeMethod" : "Manual",
              "routeBreakTime" : null,
              "routeSize1" : 338,
              "routeSize2" : 5719,
              "routeSize3" : 430,
              "_id" : ObjectId("5a253ae1c14d9573f1f91089"),
              "stops" : [ 
                  {
                      "sequence" : 0,
                      "locationId" : "100",
                      "lat" : 28.5901139,
                      "lng" : 77.3078057,
                      "stopName" : "Masafi Park Al Quoz",
                      "locationType" : "DEPOT",
                      "serviceType" : "",
                      "arrivalTime" : 36000,
                      "departureTime" : 54000,
                      "travelTime" : null,
                      "isVisited" : false,
                      "visitedTime" : null,
                      "travelDistance" : null,
                      "travelCost" : null,
                      "serviceTime" : 0,
                      "serviceTimeCost" : 0,
                      "tripNumber" : 0,
                      "_id" : ObjectId("5a253ae1c14d9573f1f910ab"),
                      "orders" : [ 
                          {
                              "_id" : ObjectId("5a253ae1c14d9573f1f910ac")
                          }
                      ],
                      "stopId" : "H1lgqyshzZG"
                  }, 
                  {
                      "sequence" : 1,
                      "locationId" : "11720",
                      "lat" : 28.5950096,
                      "lng" : 77.3141629,
                      "stopName" : "Spinneys TCR",
                      "locationType" : "service",
                      "serviceType" : "Delivery",
                      "arrivalTime" : 36289,
                      "departureTime" : 36319,
                      "travelTime" : 289,
                      "isVisited" : false,
                      "visitedTime" : null,
                      "travelDistance" : 1295,
                      "travelCost" : 0,
                      "serviceTime" : 0.5,
                      "serviceTimeCost" : 0,
                      "tripNumber" : 0,
                      "_id" : ObjectId("5a253ae1c14d9573f1f910a9"),
                      "orders" : [ 
                          {
                              "orderId" : "AQ137O1701233",
                              "SIZE1" : 10,
                              "SIZE2" : 190,
                              "SIZE3" : 10,
                              "_id" : ObjectId("5a253ae1c14d9573f1f910aa")
                          }
                      ],
                      "stopId" : "Bkkg9yinfZG"
                  },
                  {
                      "sequence" : 16,
                      "locationId" : "100",
                      "lat" : 28.5901139,
                      "lng" : 77.3078057,
                      "stopName" : "DEPOT",
                      "locationType" : "DEPOT",
                      "serviceType" : null,
                      "arrivalTime" : 40808,
                      "departureTime" : null,
                      "travelTime" : 232,
                      "isVisited" : false,
                      "visitedTime" : null,
                      "travelDistance" : 1169,
                      "travelCost" : 0,
                      "serviceTime" : 0,
                      "serviceTimeCost" : 0,
                      "tripNumber" : 0,
                      "_id" : ObjectId("5a253ae1c14d9573f1f9108b"),
                      "orders" : [ 
                          {
                              "_id" : ObjectId("5a253ae1c14d9573f1f9108c")
                          }
                      ],
                      "stopId" : "S1ecJi2MZz"
                  }
              ],
              "vehicle" : {
                  "vehicleId" : 67054,
                  "vehicleTypeId" : "",
                  "vehicleFixedCost" : null,
                  "vehicleVariableCost" : null
              },
              "workers" : [ 
                  {
                      "id" : "",
                      "type" : "",
                      "name" : "",
                      "_id" : ObjectId("5a253ae1c14d9573f1f9108a")
                  }
              ],
              "routeId" : "r1qJo2zWH"
          }
      ],
      "unassignedJobs" : [],
      "problemDate" : ISODate("2017-12-04T12:09:05.762Z"),
      "__v" : 0
  }
我的问题是

  db.getCollection('routes').find({"routes": {"$elemMatch": {"routeId": "r1qJo2zWG"}}})
我的预期结果是

{
      "_id": ObjectId("5a253ae1c14d9573f1f91088"),
      "accountId": 1,
      "regionId": "1",
      "problemId": "399",
      "plannedDeliveryDate": ISODate("2017-09-18T00:00:00.000Z"),
      "algorithm": "GREEDYWITHREGRET",
      "numberOfTrips": 0,
      "status": "",
      "routes": [
        {
          "routeStartTime": 36000,
          "routeEndTime": 36450.1496791878,
          "totalRouteTravelTime": 0.149679187838046,
          "totalRouteCost": 16.1496791878312,
          "routeServiceTime": 450,
          "totalRouteDistance": 0.149679187831155,
          "originalLocationId": "",
          "routeMethod": "Manual",
          "routeBreakTime": null,
          "routeSize1": 338,
          "routeSize2": 5719,
          "routeSize3": 430,
          "_id": ObjectId("5a253ae1c14d9573f1f91089"),
          "stops": [
            {
              "sequence": 0,
              "locationId": "100",
              "lat": 28.5901139,
              "lng": 77.3078057,
              "stopName": "Masafi Park Al Quoz",
              "locationType": "DEPOT",
              "serviceType": "",
              "arrivalTime": 36000,
              "departureTime": 54000,
              "travelTime": null,
              "isVisited": false,
              "visitedTime": null,
              "travelDistance": null,
              "travelCost": null,
              "serviceTime": 0,
              "serviceTimeCost": 0,
              "tripNumber": 0,
              "_id": ObjectId("5a253ae1c14d9573f1f910ab"),
              "orders": [
                {
                  "_id": ObjectId("5a253ae1c14d9573f1f910ac")
                }
              ],
              "stopId": "H1lgqyshzZG"
            },
            {
              "sequence": 1,
              "locationId": "11720",
              "lat": 28.5950096,
              "lng": 77.3141629,
              "stopName": "Spinneys TCR",
              "locationType": "service",
              "serviceType": "Delivery",
              "arrivalTime": 36289,
              "departureTime": 36319,
              "travelTime": 289,
              "isVisited": false,
              "visitedTime": null,
              "travelDistance": 1295,
              "travelCost": 0,
              "serviceTime": 0.5,
              "serviceTimeCost": 0,
              "tripNumber": 0,
              "_id": ObjectId("5a253ae1c14d9573f1f910a9"),
              "orders": [
                {
                  "orderId": "AQ137O1701233",
                  "SIZE1": 10,
                  "SIZE2": 190,
                  "SIZE3": 10,
                  "_id": ObjectId("5a253ae1c14d9573f1f910aa")
                }
              ],
              "stopId": "Bkkg9yinfZG"
            },
            {
              "sequence": 16,
              "locationId": "100",
              "lat": 28.5901139,
              "lng": 77.3078057,
              "stopName": "DEPOT",
              "locationType": "DEPOT",
              "serviceType": null,
              "arrivalTime": 40808,
              "departureTime": null,
              "travelTime": 232,
              "isVisited": false,
              "visitedTime": null,
              "travelDistance": 1169,
              "travelCost": 0,
              "serviceTime": 0,
              "serviceTimeCost": 0,
              "tripNumber": 0,
              "_id": ObjectId("5a253ae1c14d9573f1f9108b"),
              "orders": [
                {
                  "_id": ObjectId("5a253ae1c14d9573f1f9108c")
                }
              ],
              "stopId": "S1ecJi2MZz"
            }
          ],
          "vehicle": {
            "vehicleId": 67054,
            "vehicleTypeId": "",
            "vehicleFixedCost": null,
            "vehicleVariableCost": null
          },
          "workers": [
            {
              "id": "",
              "type": "",
              "name": "",
              "_id": ObjectId("5a253ae1c14d9573f1f9108a")
            }
          ],
          "routeId": "r1qJo2zWH"
        }
      ],
      "unassignedJobs": [

      ],
      "problemDate": ISODate("2017-12-04T12:09:05.762Z"),
      "__v": 0
    }
可以在MongoDB中使用

在本例中,我们首先将
路由
作为一个数组,然后使用它来实现结果

Mongo Shell查询

db.routes.aggregate([
    {$unwind:"$routes"}, 
    {$match: {"routes.routeId": "r1qJo2zWG"}}
 ])

您可以使用以下查询。它将首先根据提供的查询筛选出文档,然后在文档投影期间检查每个文档的元素匹配


db.getCollection('routes').find({“routes.routeId”:“r1qJo2zWG”},{routes:{“$elemMatch”:{“routeId”:“r1qJo2zWG”}}})
为什么上面的查询不起作用?我的问题是错的还是别的@Clement Amarnath有两个
$elemMatch
操作符,一个用于数组,另一个用于投影。您的查询使用的是数组$elemMatch-因此我们没有得到所需的结果,如果使用投影的$elemMatch-,我们将得到结果。的可能重复