管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:
1 i4 w) Q, g5 n4 t
/ k4 }8 ?" y0 q( n6 kdb.getCollection('student').find({'age':{'$gt':'20'}})( j4 x. C8 v D6 v$ i9 C3 B8 ]5 r
+ n w# u# C$ U# z$ M4 E% o( k+ J7 E8 b! U& K6 I. P1 X
( j: x1 p2 j9 g# Z- r7 N ], S
$lt < (less than )
7 s2 ^3 R4 d( C. U* q" t4 }/ D" F# R: s, X b; c
$lte <= (less than or equal to )
7 E' V4 L$ [5 ~8 |. V/ I* l5 k, x0 a9 m# G- K
$gt > (greater than )
1 C# }& o& [; W, y- p+ U$ p1 `/ x* }# H, E
$gte >= (greater than or equal to)4 M9 M- p+ K" p5 C$ o+ m5 I
; A2 r0 V# V6 r$ o2 {0 i' l1 ?: l7 s7 i# Z }
5 N9 J) d3 Q% j7 r$ F
$ne != (not equal to)不等于 {'age': {'$ne': 20}}
+ \9 W. ^) n2 Q+ `! q% O8 x) h$ @9 K
T2 ^+ s- _3 ~$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list+ i, a! r6 E6 x% Z' x2 O' N! E7 x1 j( d
; d# ^) O0 |: C9 Z5 j/ }$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list
7 e' f4 S' s, S# h( i0 ?/ F
3 {# x' @+ d6 w8 H$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字
s% U; E3 `) p* W4 g+ u
; C1 P9 S% b+ Q$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
# M- ^; U7 U8 y4 v5 D# I2 x
h& H! R9 |; b6 T6 N$type 类型判断 {'age': {'$type': 'int'}} age的类型为int! X% A/ Z# }5 T+ E; y9 k
5 k: u& A. x ]4 H; [$ M9 u$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串# h) r& U6 @. Z( j) Q" ]; X
; B, ]' H* Z. Z) j% k
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
- R0 Q+ H& E8 d; I, M1 L1 l$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);5 A7 C0 ?. Q2 @* j6 x, l
+ Q1 ^/ o: Q. J+ ?& [3 i6 a! m$exists 键是否存在 {finaGoalLine:{'$exists':true}}$ c6 o( X2 h1 S3 i. [8 ?* U
6 }3 T1 H) ]( |, O6 C$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]
: m; B4 m, I# `; A8 z) M# g7 F- B3 Q, C( h$ [, h! a/ C9 B( V
$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],) t6 K, i7 g; [* w; v4 r( D: ?
$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3
2 Q ?5 b4 Y6 J1 Q+ n4 J# D+ A& O" x7 ~( G
" F' R! X2 t" T1 J* `( m# J1 R
8 i- l1 a. Y: |8 A; M$ v" s5 w; K3 v: b- n# `$ l) z# T
: n: x) d& K' d* s$ u' n4 I( ~" s
# c. F+ H0 u @. a# W& x. V& \/ N
; E, o4 k2 b$ |6 b {
: w# e& v4 e! A组合使用方法如下: g; i, k( ~5 Q, ?$ u
7 ^* t7 Y( ?; \2 c @db.user.find({"age":{"$gte":18,"$lte":25}}) G N, c9 L3 C/ q. D5 ^" _
0 u) L: A8 }7 z; S% d# c/ r0 [* \$ ?; |/ S0 a! ^
* ?4 b9 F8 a; g: M) e对于日期的条件查询方法:
. W- x5 f/ C# d+ G
6 h2 ?" P0 K( q* `, o% {( L5 Bdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
0 l3 p" ]: J' X
. E- e7 O) N; I% ^) s7 t8 n
, @* ^. Y# A+ Z5 F% a4 g: s
/ J0 X% S9 M* X+ s. L2) 不等于 $ne r) e1 C4 w" I& O8 m
$ h! J* y3 n& y q' L8 M
例子:
d9 `* D- J7 y6 a+ {2 x& {% p/ ]- @& `6 j
db.taobao.find( { age: { $ne : 10} } );
- ?. \8 }4 n2 g6 \) Y6 wphp7 查询mongodb方法大全4 c' [! h, J5 S! q" j
9 q5 q' Y6 J. H; C$ Y, U- b
w$ ^0 M* x2 b+ |4 l
7 N! Q2 ^4 H/ \$ C( f0 E9 ~2 p) N P) {1 s! z) p4 j l1 d# r
& V* G% u, T- x j+ a* J( V5 t- y' }# z4 U
: X" H+ y, V( i5 r/ P: E
& G1 P2 L& G" v
1 M4 @8 O" l. i2 @
1 P& N0 U2 D9 X5 N: c$ u9 a8 ?/ q' X- Q7 u
7 n$ Z' A( o/ [0 v% R* U; b& p
|
|