MongoDB $ in - 只有一个值而没有其他值

时间:2013-05-17 06:24:23

标签: mongodb nosql

不确定如何标题这个问题,但希望解释更清楚

我有一个像

这样的文件
{   
_id: "User1",  
skills: [
          {  
           ty: "coding",  
           inf: "c"  
          },
          {  
           ty: "design",  
           inf: "photoshop",  
          },
          {  
           ty: "language",  
           inf: "french",  
          },
          {  
           ty: "language",  
           inf: "german",  
          },
        ]
},
{   
_id: "User2",  
skills: [
          {  
           ty: "coding",  
           inf: "c"  
          },
          {  
           ty: "coding",  
           inf: "scala",  
          },
          {  
           ty: "spreadsheet",  
           inf: "excel",  
          },
          {  
           ty: "language",  
           inf: "english",  
          },
        ]
}

依此类推,我的问题是选择只具有“编码”技能的用户。 这是我试过的

db.collection.find({"skills.ty":{$nin:["language","design","spreadsheet"]}})

这里的问题是没有固定的技能。现在它是唯一的(语言,设计,编码,电子表格),但未来可能会有更多。

我如何编写查询以获得只有一种技能类型的用户,而不管其他人有多少?让那些只拥有编码技能的人,但没有其他< / em>的

推断,如何在“c”和“c ++”中找到具有“编码”技能但没有其他人的人? 即让那些拥有c和c ++编码技能并且没有其他编码技能的人,这些用户可能拥有其他技能,如设计

我是否需要为这些函数编写函数,或者我是否可以编写查询?

1 个答案:

答案 0 :(得分:1)

db.collection.find有什么问题({“skills.ty”:“coding”})?