Mongodb 什么';mongoose中的.in()和all()运算符之间有什么区别?
我只是好奇mongoose查询中的.in()和.all()方法有什么区别?Mongodb 什么';mongoose中的.in()和all()运算符之间有什么区别?,mongodb,mongoose,Mongodb,Mongoose,我只是好奇mongoose查询中的.in()和.all()方法有什么区别? 你能用一个简单的例子来解释吗。以下是mongodb.org的解释: $all $all运算符类似于$in,但不是匹配指定数组中的任何值,而是必须匹配数组中的所有值。例如,对象 {a:[1,2,3]} 将由 find({a:{$all:[2,3]}) 但不是 find({a:{$all:[2,3,4]}) 数组可以包含比$all条件指定的元素更多的元素$all指定必须匹配的最小元素集 阅读有关mongodb操作符的更多信息
你能用一个简单的例子来解释吗。以下是mongodb.org的解释: $all $all运算符类似于$in,但不是匹配指定数组中的任何值,而是必须匹配数组中的所有值。例如,对象 {a:[1,2,3]} 将由 find({a:{$all:[2,3]}) 但不是 find({a:{$all:[2,3,4]}) 数组可以包含比$all条件指定的元素更多的元素$all指定必须匹配的最小元素集
阅读有关mongodb操作符的更多信息
$all
操作符检索包含我们传递的值子集的所有文档。子集可以是任意顺序
$in
运算符检索包含我们传递的任一值的所有文档
例如,用以下文件考虑“技能”集合:
{ "Name" : "Balaji", "skills" : [ "Dancing", "Cooking", "Singing" ] }
{ "Name" : "Ramesh", "skills" : [ "Cooking", "Singing" ] }
{ "Name" : "Suresh", "skills" : [ "Dancing", "Singing" ] }
db.skills.find({skills:{$all:[“Cooking”,“Singing”]})
将仅返回集烹饪和歌唱技能为一组的文档,即Balaji和Ramesh
db.skills.find({skills:{$in:[“Cooking”,“Singing”]})
将返回所有文档,因为所有文档都包含Cooking或Singing。考虑以下集合“gamesapp”
{
_id: ObjectId("7892de7a123be821ebcca757"),
name: "kid1",
games: [ "Chess", "Cricket", "Football", "Hockey", "Carrom" ],
favourite_games: [ "Chess", "Cricket", "Football" ]
}
{
_id: ObjectId("7892de7a123be821ebcca758"),
name: "kid2",
games: [ "Chess", "Cricket", "Football", "Hockey", "Carrom" ],
favourite_games: [ "Chess", "Cricket" ]
}
{
_id: ObjectId("7892de7a123be821ebcca759"),
name: "kid3",
games: [ "Chess", "Cricket", "Football", "Hockey", "Carrom" ],
favourite_games: [ "Chess" ]
}
{
_id: ObjectId("7892de7a123be821ebcca760"),
name: "kid4",
games: [ "Chess", "Cricket", "Football", "Hockey", "Carrom" ],
favourite_games: [ "Chess", "Cricket" ]
}
$all-这是一个数组运算符,相当于AND操作。如果集合与指定数组中的所有值相匹配,则应返回集合中的文档。以下内容有助于确定所有具有值“Chess”“Cricket”的文档
db.gamesapp.find({“最喜爱的游戏”:{$all:[“国际象棋”,“板球”]})
该文件应列出目标文件
7892de7a123be821ebcca757、7892de7a123be821ebcca758和7892de7a123be821ebcca760
$in-这是一个比较查询运算符,它基于列出可能条件的数组。它有助于查询各种值,它列出了与查询中指定数组中存在的任何值相匹配的文档。以下内容有助于确定所有具有“Chess”或“Cricket”值的文档
db.gamesapp.find({“最喜爱的游戏”:{$in:[“国际象棋”,“板球”]})
这应列出所有具有ObjectId的文件
7892de7a123be821ebcca757、7892de7a123be821ebcca758、,
7892de7a123be821ebcca759和7892de7a123be821ebcca760