Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
Node.js 如何使用Mongoose在JSON文件中查找特定数组_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 如何使用Mongoose在JSON文件中查找特定数组

Node.js 如何使用Mongoose在JSON文件中查找特定数组,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我用mongoose模式制作了一些复杂的数据。 我想通过一些特定的条件找到它。 这是我邮寄的资料。 { "clientID": "1234", "clientOrder": [{ "cartNumber":0, "departure": { "pickUpTimeFrom": "2019-02-03T13:00", "pickUpTimeto": "2019-02-03T15:00" }, "dest

我用mongoose模式制作了一些复杂的数据。
我想通过一些特定的条件找到它。
这是我邮寄的资料。

{
    "clientID": "1234",
    "clientOrder": [{
      "cartNumber":0,
      "departure": {
        "pickUpTimeFrom": "2019-02-03T13:00",
        "pickUpTimeto": "2019-02-03T15:00"
      },
      "destination": {
        "pickUpTimeFrom": "2019-02-04T13:00",
        "pickUpTimeto": "2019-02-04T15:00"
      }
    },
    "clientID": "1234",
    "clientOrder": [{
      "cartNumber":1,
      "departure": {
        "pickUpTimeFrom": "2019-02-03T13:00",
        "pickUpTimeto": "2019-02-03T15:00"
      },
      "destination": {
        "pickUpTimeFrom": "2019-02-04T13:00",
        "pickUpTimeto": "2019-02-04T15:00"
      }
    }]
}

我想通过日期条件在“cartNumber:0”找到一个特定数组。
因此,我找到了“cartNumber:0”。
但是,它不发送任何日期。
而且,我甚至无法将“出发”的日期条件设置为“2019-02-03”。
你能帮我编正确的代码吗

  const allInform = await Order.find({
      clientOrder: {
        $elemMatch: {
          cartNumber: 0,
        },
      },
    });

我不太确定我是否理解你的模式,因为它有一些错误, 但我假设每个客户订单可以有多个购物车,而且购物车0不一定位于数组的索引0处。 如果这两个假设中的任何一个是错误的,那么可以简化以下查询

 let results = await Order.aggregate([
        {
          $unwind: "$clientOrder"
        },
        {
          $match: {
              $and: [{'clientOrder.cartNumber': 0}, 
                   {'clientOrder.destination.pickUpTimeFrom': <DATE OBJECT>}]
           }
        }
        ]);
let results=wait Order.aggregate([
{
$unwind:“$clientOrder”
},
{
$match:{
$and:[{'clientOrder.cartNumber':0},
{'clientOrder.destination.pickUpTimeFrom':}]
}
}
]);
请注意,如果将日期保存为日期对象,则不能将其作为字符串查询

如果您使用的mongoshell使用的是ISODate,它看起来像:
ISODate(“2018-07-05T07:15:09.703+0000”)

如果您使用javascript,您可以创建一个新的日期对象:
newdate(““2018-07-05”)

  • 当你的匹配日期像这样,它必须是一个确切的匹配

请您澄清您想要查找的内容好吗?抱歉,没有这么多解释。我会给出一个具体日期,如2019-02-03。我想知道与“cartNumber:0”的“出发”的“Pickuptemefom”相比,该日期的数据是否一致。