2017-09-22 50 views
0

数组查询我有一个数据库对象看起来像这样:如何在对象的MongoDB中

{ 
    user_name: 'string', 
    skills: [ 
     { skill: 'skill1', lvl: 3 } 
    ], 
    wantsToLearn: [ 
     {skill: 'skill2' } 
    ] 
} 

我想打一个查询,其中我发现所有的用户提供了wantToLearn技能与一个PF匹配我的输入用户的技能(与lvl无关),反之亦然。基本上,我希望能够找到技能和他们想学习的东西之间匹配的所有用户。

我看了一下mongodb文档,对于如何做到这一点最好的方法仍然有点无知。一般来说,除了某些sql之外,我对数据库是新手。

任何指针将不胜感激!

+0

的可能的复制方式[比较两个对象数组并检查它们是否具有公共元素](https://stackoverflow.com/questions/42583967/comparing-two-object-arrays-and-check-if-they-have-common-elements) – Veeram

回答

1

如果你想找到的所有用户符合某一技能,所有你需要做的是:

db.getCollection('yourCollection').find({"wantsToLearn.skill": "skill2" })

这就是你查询的MongoDB的子文档,甚至在阵列