MongoDB相当于WHERE IN(1,2,...)?

MongoDB中相当于WHERE IN(1,2,....)的是$in运算符。语法如下

db.yourCollectionName.find({yourFieldName:{$in:[yourValue1,yourValue2,....N]}}).pretty();

首先让我们创建一个包含文档的集合

> db.whereInDemo.insertOne({"StudentName":"John","StudentMathScore":57});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ca281ec6304881c5ce84ba5")
}
> db.whereInDemo.insertOne({"StudentName":"Larry","StudentMathScore":89});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ca281f56304881c5ce84ba6")
}
> db.whereInDemo.insertOne({"StudentName":"Chris","StudentMathScore":98});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ca281fd6304881c5ce84ba7")
}
> db.whereInDemo.insertOne({"StudentName":"Robert","StudentMathScore":99});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ca2820a6304881c5ce84ba8")
}
> db.whereInDemo.insertOne({"StudentName":"Bob","StudentMathScore":97});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ca282206304881c5ce84ba9")
}

以下是在find()方法的帮助下显示集合中所有文档的查询

> db.whereInDemo.find().pretty();

这将产生以下输出

{
   "_id" : ObjectId("5ca281ec6304881c5ce84ba5"),
   "StudentName" : "John",
   "StudentMathScore" : 57
}
{
"_id" : ObjectId("5ca281f56304881c5ce84ba6"),
"StudentName" : "Larry",
"StudentMathScore" : 89
}
{
   "_id" : ObjectId("5ca281fd6304881c5ce84ba7"),
   "StudentName" : "Chris",
   "StudentMathScore" : 98
}
{
   "_id" : ObjectId("5ca2820a6304881c5ce84ba8"),
   "StudentName" : "Robert",
   "StudentMathScore" : 99
}
{
   "_id" : ObjectId("5ca282206304881c5ce84ba9"),
   "StudentName" : "Bob",
   "StudentMathScore" : 97
}

以下是使用$in运算符表示与MongoDB中的位置等效的查询:

> db.whereInDemo.find({StudentMathScore:{$in:[97,98,99]}}).pretty();

这将产生以下输出

{
   "_id" : ObjectId("5ca281fd6304881c5ce84ba7"),
   "StudentName" : "Chris",
   "StudentMathScore" : 98
}
{
   "_id" : ObjectId("5ca2820a6304881c5ce84ba8"),
   "StudentName" : "Robert",
   "StudentMathScore" : 99
}
{
   "_id" : ObjectId("5ca282206304881c5ce84ba9"),
   "StudentName" : "Bob",
   "StudentMathScore" : 97
}