首页 文章

使用java或简单查询比较mongodb中的两个集合

提问于
浏览
2

我正在关注一个画廊的文件(Json),

{
        "_id": "53698b6092x3875407fefe7c",
        "status": "active",
        "colors": [
            "red",
            "green"
        ],
        "paintings": [
            {
                "name": "MonaLisa",
                "by": "LeonardodaVinci"
            },
            {
                "name": "JungleArc",
                "by": "RayBurggraf"
            }
        ]
    }

现在我也有一组颜色说
COLORS-COLLECTION: ["black","yellow","red","green","blue","pink"]
我想通过它的名称来匹配提供的文字,如提供的文字说 "MonaLisa" (作为搜索查询)我也想用COLORS-COLLECTION比较两种颜色,如果颜色在COLORS-COLLECTION中有任何匹配的颜色,那么它应该返回绘画 .
我想要下面的东西:

{
        "paintings": [
            {
                "name": "MonaLisa",
                "by": "LeonardodaVinci"
            }
        ]
    }

请帮我!! . 提前致谢 .

1 回答

  • 1

    如果我找到你的话,aggregation framework会做你的工作:

    db.gallery.aggregate([
        {"$unwind": "$paintings"},
        {"$match": {"paintings.name": 'MonaLisa', "colors": {"$in": ["black","yellow","red","green","blue","pink"]}}},
        {"$project": {"paintings": 1, "_id": 0}}
    ]);
    

相关问题