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 }