【问题标题】:How to tell if an array of values all present in an array in a mongodb collection?如何判断一个值数组是否都存在于 mongodb 集合的数组中?
【发布时间】:2011-06-01 04:24:37
【问题描述】:

我有一些看起来像这样的代码(都在 mongodb 解释器中):

var needed_skills = ['mongodb','javascript','c++','php']

db.applicants.save( { name:'joe', skills:['c++','ruby','css'] } );
db.applicants.save( { name:'peter', skills:['mongodb','javascript','c++','php','html'] } );

如何进行查询以找到具备所有必需技能的申请人?基本上,我正在寻找所有数组成员都存在于给定数组中的文档。我知道如果你想让它找到一个成员,你可以做这样的事情:

db.applicants.find({skills:'mongodb'})

但是那只是匹配一个,而我想匹配所有...

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript arrays mongodb


    【解决方案1】:

    你想使用$all:

    db.applicants.find({skills: {$all: ['mongodb','javascript','c++','php','html']} });
    

    var needed_skills = ['mongodb','javascript','c++','php']
    
    db.applicants.find({skills: {$all: needed_skills} }); 
    

    【讨论】:

    • np,更新了答案以包含一个使用数组变量而不是数组文字的缩短查询。
    猜你喜欢
    • 1970-01-01
    • 2018-04-15
    • 2011-04-16
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 2019-02-11
    相关资源
    最近更新 更多