Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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 使用mongoose查询MongoDB中的特定子文档_Javascript_Database_Mongodb_Express_Mongoose - Fatal编程技术网

Javascript 使用mongoose查询MongoDB中的特定子文档

Javascript 使用mongoose查询MongoDB中的特定子文档,javascript,database,mongodb,express,mongoose,Javascript,Database,Mongodb,Express,Mongoose,我一直在手动尝试Mongo文档中的几种方法,但似乎无法解决我的问题。这是我的数据结构,供参考 "loopback": [ { "_date": "some date", "dutTestParams": [], "_id": "5f680665dfbfb74e78cae175",

我一直在手动尝试Mongo文档中的几种方法,但似乎无法解决我的问题。这是我的数据结构,供参考

"loopback": [
        {
            "_date": "some date",
            "dutTestParams": [],
            "_id": "5f680665dfbfb74e78cae175",
            "paramId": "dummyid",
            "jtagApbStatus": "true",
            "dutYaml": "dummy_yaml",
            "dutSequenceId": "dummy_sequence",
            "dutGitVersion": "1.0.1",
            "guiVersion": "1.0",
            "projectId": "alphacore",
            "jobId": "id",
            "pvt": "dummypvt",
            "rate": 1,
            "refclk": 1,
            "channelLoss": 1,
            "voltage1": 1,
            "voltage2": 0.5,
            "voltage3": 0.5,
            "temp": 10,
            "txwidth": 8,
            "rxwidth": 8,
            "name": "loopback",
            "data": [
                {
                    "onLane": [
                        1
                    ],
                    "_id": "5f680675dfbfb74e78cae17c",
                    "chpid": "chip1",
                    "loopbackname": "BER",
                    "loopbackvalue": 0,
                    "laneid": 1,
                    "iteration": 1
                },
                {
                    "onLane": [
                        1
                    ],
                    "_id": "5f680675dfbfb74e78cae17d",
                    "chipid": "chip2",
                    "loopbackname": "BER",
                    "loopbackvalue": 0,
                    "laneid": 1,
                    "iteration": 1
                },{....}, ....., {....}]  
基本上我有一个父文档。父标题文档中存储有测试数据。该数据与测试相关,因此不一定是误码率。它可以是其他测试点。此外,它包含测试中测试的所有芯片

我可以过滤查询后的数据,这是微不足道的。但是,我有没有办法提出具体的查询?理想情况下,我希望能够做到以下几点:

db.testdata.find({jobid:"some id", data.0.chipid:"chip1"})
因此,查询返回标题父文档,并且只返回chipid==chip1的子文档。当我尝试沿着这些思路做一些事情时,我会得到所有的子文档,这不是我想要的

任何有经验的帮助都将不胜感激

使用此查询-

db.collection.aggregate([
  {
    "$match": {
      jobId: "id"
    }
  },
  {
    "$unwind": "$data"
  },
  {
    "$match": {
      "data.chipid": "chip1"
    }
  }
])

试穿一下

谢谢,男人会投票的。我假设这个通用流程适用于子文档中的任何内容?是的,它确实有效。在操场上试试看。如果答案有效,请接受答案。如果它对你有用的话,请考虑接受答案。