Javascript 使用mongoose查询MongoDB中的特定子文档
我一直在手动尝试Mongo文档中的几种方法,但似乎无法解决我的问题。这是我的数据结构,供参考Javascript 使用mongoose查询MongoDB中的特定子文档,javascript,database,mongodb,express,mongoose,Javascript,Database,Mongodb,Express,Mongoose,我一直在手动尝试Mongo文档中的几种方法,但似乎无法解决我的问题。这是我的数据结构,供参考 "loopback": [ { "_date": "some date", "dutTestParams": [], "_id": "5f680665dfbfb74e78cae175",
"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"
}
}
])
试穿一下谢谢,男人会投票的。我假设这个通用流程适用于子文档中的任何内容?是的,它确实有效。在操场上试试看。如果答案有效,请接受答案。如果它对你有用的话,请考虑接受答案。