Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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
Mongodb 嵌入式阵列投影的单元素_Mongodb_Aggregation Framework - Fatal编程技术网

Mongodb 嵌入式阵列投影的单元素

Mongodb 嵌入式阵列投影的单元素,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我有一个集合,文档的结构与上面的示例类似。我已经开始使用聚合来匹配我想要的类型,但是我用它获得了我不想要的整个数组 { "_id" : ObjectId("5b04e9d891081234f8b69199"), "simpleType" : "somethingSomething", "embeddedArray" : [ { "type" : "theTypeIWant",

我有一个集合,文档的结构与上面的示例类似。我已经开始使用聚合来匹配我想要的类型,但是我用它获得了我不想要的整个数组

{
   "_id" : ObjectId("5b04e9d891081234f8b69199"),
   "simpleType" : "somethingSomething",
   "embeddedArray" : [
                {
                  "type" : "theTypeIWant",
                  "data" : [...]
                },
                {
                  "type" : "notThatOne",
                  "data" : [...]
                },
                {
                  "type" : "notThatOne",
                  "data" : [...]
                },
                {
                  "type" : "notThatOne",
                  "data" : [...]
                },
                {
                  "type" : "notThatOne",
                  "data" : [...]
                }
        ]
}
有没有办法只获取embeddedArray中与我正在搜索的类型相匹配的元素作为我的投影

我不能保证我正在搜索的类型的元素始终是嵌入数组中的第一个元素

我希望得到如下结果集:

db.collection.aggregate(
    [
        {$project: {"simpleType" : 1, "embeddedArray.type": 1, "embeddedArray.data": 1}},
        {$match: {"embeddedArray.type" : "theTypeIWant"}}
    ]
)
或:


你的问题标题直接输入谷歌,直接进入相关运营商的文档。在发布问题之前请先搜索。@NeilLunn我在形成问题时遇到了一些麻烦(通过谷歌搜索),这就是为什么我在这里为我的问题写了一个解释。有了这些结构化的想法,我本可以再次开始搜索,但我点击提交按钮太快了。感谢您的快速反馈。在将来提交问题之前,我会尽量考虑得更周到。
{
    "simpleType" : "somethingSomething",
    "type": "theTypeIWant",
    "data": [...]
}
{
    "simpleType" : "somethingSomething",
    "embeddedArray":{
        "type": "theTypeIWant",
        "data": [...]
    }
}