$lt(<) $lte(<=) $gt(>) $gte(>=) $ne(!=) $in $not $size $where limit(5).skip(5).sort({"number" : -1}

来源:互联网 发布:淘宝账号冻结怎么解除 编辑:程序博客网 时间:2024/05/16 03:25

$lt(<) $lte(<=) $gt(>) $gte(>=)  $ne(!=) $in $not $size $where limit(5).skip(5).sort({"number" : -1} 查询关键字

$lt(<) $lte(<=) $gt(>) $gte(>=)  $ne(!=)
查询一个范围内的数据
> db.qwen.number.find({"number" : { "$gt" : 900 ,"$lt" : 910,"$ne":905 } })
{ "_id" : ObjectId("50da8f322ffd118128237aee"), "name" : "qwen", "number" : 901
}
{ "_id" : ObjectId("50da8f322ffd118128237aef"), "name" : "qwen", "number" : 902
}
{ "_id" : ObjectId("50da8f322ffd118128237af0"), "name" : "qwen", "number" : 903
}
{ "_id" : ObjectId("50da8f322ffd118128237af1"), "name" : "qwen", "number" : 904
}
{ "_id" : ObjectId("50da8f322ffd118128237af3"), "name" : "qwen", "number" : 906
}
{ "_id" : ObjectId("50da8f322ffd118128237af4"), "name" : "qwen", "number" : 907
}
{ "_id" : ObjectId("50da8f322ffd118128237af5"), "name" : "qwen", "number" : 908
}
{ "_id" : ObjectId("50da8f322ffd118128237af6"), "name" : "qwen", "number" : 909
}
$in(存在于数组中的) $nin (不存在于数组中的) $or(或者条件)
> db.qwen.number.find({"number" : { "$in" : [ 901,902 ] } })
{ "_id" : ObjectId("50da8f322ffd118128237aee"), "name" : "qwen", "number" : 901
}
{ "_id" : ObjectId("50da8f322ffd118128237aef"), "name" : "qwen", "number" : 902
}
> db.qwen.number.find( {"number" : { "$nin" : [ 995,998 ],"$lt" : 1000,"$gt" : 9
90 } })
{ "_id" : ObjectId("50da8f322ffd118128237b48"), "name" : "qwen", "number" : 991
}
{ "_id" : ObjectId("50da8f322ffd118128237b49"), "name" : "qwen", "number" : 992
}
{ "_id" : ObjectId("50da8f322ffd118128237b4a"), "name" : "qwen", "number" : 993
}
{ "_id" : ObjectId("50da8f322ffd118128237b4b"), "name" : "qwen", "number" : 994
}
{ "_id" : ObjectId("50da8f322ffd118128237b4d"), "name" : "qwen", "number" : 996
}
{ "_id" : ObjectId("50da8f322ffd118128237b4e"), "name" : "qwen", "number" : 997
}
{ "_id" : ObjectId("50da8f322ffd118128237b50"), "name" : "qwen", "number" : 999
}

$not(可以用于附于任何条件之上) $all匹配所有数组 并且支持正则表达式的查询条件(javascript的语法)
$size取条件中的某部分值,$slice返回数组的一个子集合。

$where支持javascript函数调用来匹配查询.查询的性能较差,因为不能利用索引并且还需要java转换一次。
> db.qwen.foo.insert({"apple" : 1,"banana" : 6,"peach" : 3})
> db.qwen.foo.insert({"apple" : 8,"spinach" : 4,"watermelon" : 4 })


> db.qwen.foo.find({"$where" : function()
{
  for(var current in this)
    {
      for(var other in this )
        {
          if(current != other && this[current] == this[other] )
            { return true; }
        }
    }  
}
})

{ "_id" : ObjectId("50da96c22ffd118128239e7b"), "apple" : 8, "spinach" : 4, "wat
ermelon" : 4 }

limit(5).skip(5).sort({"number" : -1}每次只显示5条,且排倒序(1为升序)Skip()这种查询就是游标,对于数据集比较大时,性能通常并不好。

> db.qwen.number.find({"name" : "qwen" } ).limit(5).skip(5).sort({"number" : -1})
{ "_id" : ObjectId("50da8f332ffd118128239e74"), "name" : "qwen", "number" : 9995
 }
{ "_id" : ObjectId("50da8f332ffd118128239e73"), "name" : "qwen", "number" : 9994
 }
{ "_id" : ObjectId("50da8f332ffd118128239e72"), "name" : "qwen", "number" : 9993
 }
{ "_id" : ObjectId("50da8f332ffd118128239e71"), "name" : "qwen", "number" : 9992
 }
{ "_id" : ObjectId("50da8f332ffd118128239e70"), "name" : "qwen", "number" : 9991
 }
>