Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 什么';mongoose中的.in()和all()运算符之间有什么区别?_Mongodb_Mongoose - Fatal编程技术网

Mongodb 什么';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操作符的更多信息

我只是好奇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操作符的更多信息

$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