要查询比较 2 个字段的条件,请使用以下语法 -
db.yourCollectionName.find( { $where: function() { returnthis.yourFirstFieldName<this.yourSecondFieldName} } ).pretty();
为了理解语法,让我们用文档创建一个集合。使用文档创建集合的查询如下 -
> db.comparingTwoFieldsDemo.insertOne({"StudentName":"John","StudentAge":21,"StudentMathMarks":99,"StudentPhysicsMarks":98}); { "acknowledged" : true, "insertedId" : ObjectId("5c8ac09e6cea1f28b7aa0807") } > db.comparingTwoFieldsDemo.insertOne({"StudentName":"Carol","StudentAge":22,"StudentMathMarks":79,"StudentPhysicsMarks":89}); { "acknowledged" : true, "insertedId" : ObjectId("5c8ac0b46cea1f28b7aa0808") } > db.comparingTwoFieldsDemo.insertOne({"StudentName":"David","StudentAge":24,"StudentMathMarks":39,"StudentPhysicsMarks":45}); { "acknowledged" : true, "insertedId" : ObjectId("5c8ac0c96cea1f28b7aa0809") } > db.comparingTwoFieldsDemo.insertOne({"StudentName":"Bob","StudentAge":23,"StudentMathMarks":87,"StudentPhysicsMarks":78}); { "acknowledged" : true, "insertedId" : ObjectId("5c8ac0e06cea1f28b7aa080a") }
在find()方法的帮助下显示集合中的所有文档。查询如下:
> db.comparingTwoFieldsDemo.find().pretty();
以下是输出 -
{ "_id" : ObjectId("5c8ac09e6cea1f28b7aa0807"), "StudentName" : "John", "StudentAge" : 21, "StudentMathMarks" : 99, "StudentPhysicsMarks" : 98 } { "_id" : ObjectId("5c8ac0b46cea1f28b7aa0808"), "StudentName" : "Carol", "StudentAge" : 22, "StudentMathMarks" : 79, "StudentPhysicsMarks" : 89 } { "_id" : ObjectId("5c8ac0c96cea1f28b7aa0809"), "StudentName" : "David", "StudentAge" : 24, "StudentMathMarks" : 39, "StudentPhysicsMarks" : 45 } { "_id" : ObjectId("5c8ac0e06cea1f28b7aa080a"), "StudentName" : "Bob", "StudentAge" : 23, "StudentMathMarks" : 87, "StudentPhysicsMarks" : 78 }
这是比较 2 个字段的条件查询 -
> db.comparingTwoFieldsDemo.find( { $where: function() { returnthis.StudentMathMarks<this.StudentPhysicsMarks} } ).pretty();
以下是输出 -
{ "_id" : ObjectId("5c8ac0b46cea1f28b7aa0808"), "StudentName" : "Carol", "StudentAge" : 22, "StudentMathMarks" : 79, "StudentPhysicsMarks" : 89 } { "_id" : ObjectId("5c8ac0c96cea1f28b7aa0809"), "StudentName" : "David", "StudentAge" : 24, "StudentMathMarks" : 39, "StudentPhysicsMarks" : 45 }