不确定如何标题这个问题,但希望解释更清楚
我有一个像
这样的文件{
_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 ++编码技能并且没有其他编码技能的人,这些用户可能拥有其他技能,如设计
我是否需要为这些函数编写函数,或者我是否可以编写查询?
答案 0 :(得分:1)
db.collection.find有什么问题({“skills.ty”:“coding”})?