monogdb语句学习大全(助你快速熟悉并且掌握)

前端之家收集整理的这篇文章主要介绍了monogdb语句学习大全(助你快速熟悉并且掌握)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

左边是mongodb查询语句,右边是sql语句。对照着用,挺方便。

db.users.find() select*fromusers

db.users.find({"age":27}) select*fromuserswhereage=27

db.users.find({"username":"joe","age":27}) select*fromuserswhere"username"="joe"andage=27

db.users.find({},{"username":1,"email":1}) selectusername,emailfromusers

db.users.find({},"_id":0}) //nocase//即时加上了列筛选,@H_403_12@_id@H_403_12@也会返回;必须显式的阻止@H_403_12@_id@H_403_12@返回@H_403_12@

db.users.find({"age":{"$gte":18,"$lte":30}}) select*fromuserswhereage>=18andage<=30 //$lt(<)$lte(<=)$gt(>)$gte(>=)

db.users.find({"username":{"$ne":"joe"}}) select*fromuserswhereusername<>"joe"

db.users.find({"ticket_no":{"$in":[725,542,390]}}) select*fromuserswhereticket_noin(725,390)

db.users.find({"ticket_no":{"$nin":[725,390]}}) select*fromuserswhereticket_nonotin(725,390)

db.users.find({"$or":[{"ticket_no":725},{"winner":true}]}) select*formuserswhereticket_no=725orwinner=true

db.users.find({"id_num":{"$mod":[5,1]}}) select*fromuserswhere(id_nummod5)=1

db.users.find({"$not":{"age":27}}) select*fromuserswherenot(age=27)

db.users.find({"username":{"$in":[null],"$exists":true}}) select*fromuserswhereusernameisnull //如果直接通过@H_403_12@find({"username":null})@H_403_12@进行查询,那么连带@H_403_12@"@H_403_12@没有@H_403_12@username"@H_403_12@的纪录一并筛选出来@H_403_12@

db.users.find({"name":/joey?/i}) //正则查询,@H_403_12@value@H_403_12@是符合@H_403_12@PCRE@H_403_12@的表达式@H_403_12@

db.food.find({fruit:{$all:["apple","banana"]}}) //对数组的查询@H_403_12@,@H_403_12@字段@H_403_12@fruit@H_403_12@中,既包含@H_403_12@"apple",@H_403_12@又包含@H_403_12@"banana"@H_403_12@的纪录@H_403_12@

db.food.find({"fruit.2":"peach"}) //对数组的查询@H_403_12@,@H_403_12@字段@H_403_12@fruit@H_403_12@中,第@H_403_12@3@H_403_12@个@H_403_12@(@H_403_12@从@H_403_12@0@H_403_12@开始@H_403_12@)@H_403_12@元素是@H_403_12@peach@H_403_12@的纪录@H_403_12@

db.food.find({"fruit":{"$size":3}}) //对数组的查询@H_403_12@,@H_403_12@查询数组元素个数是@H_403_12@3@H_403_12@的记录,@H_403_12@$size@H_403_12@前面无法和其他的操作符复合使用@H_403_12@

db.users.findOne(criteria,{"comments":{"$slice":10}}) //对数组的查询,只返回数组@H_403_12@comments@H_403_12@中的前十条,还可以@H_403_12@{"$slice":-10}@H_403_12@,@H_403_12@{"$slice":[23,10]};@H_403_12@分别返回最后@H_403_12@10@H_403_12@条,和中间@H_403_12@10@H_403_12@条@H_403_12@

db.people.find({"name.first":"Joe","name.last":"Schmoe"})//嵌套查询@H_403_12@

db.blog.find({"comments":{"$elemMatch":{"author":"joe","score":{"$gte":5}}}}) //嵌套查询,仅当嵌套的元素是数组时使用@H_403_12@,@H_403_12@

db.foo.find({"$where":"this.x+this.y==10"}) //复杂的查询,@H_403_12@$where@H_403_12@当然是非常方便的,但效率低下。对于复杂查询,考虑的顺序应当是正则@H_403_12@->MapReduce->$where@H_403_12@

db.foo.find({"$where":"function(){returnthis.x+this.y==10;}"}) //$where可以支持@H_403_12@javascript@H_403_12@函数作为查询条件@H_403_12@

db.foo.find().sort({"x":1}).limit(1).skip(10); //返回第@H_403_12@(10,11]@H_403_12@条,按@H_403_12@"x"@H_403_12@进行排序@H_403_12@;@H_403_12@三个@H_403_12@limit@H_403_12@的顺序是任意的,应该尽量避免@H_403_12@skip@H_403_12@中使用@H_403_12@large-number@H_403_12@

猜你在找的NoSQL相关文章