管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:" z! N% M5 S- a b+ R) x6 a
& \' `7 u$ f* N4 [' L8 N
db.getCollection('student').find({'age':{'$gt':'20'}})
* ~; s; l* l7 Y- O% X2 M" J
2 c% T8 y: e& l* `
5 z: H; I5 N5 ~
* W2 o- k/ C7 M& l" Z4 C$lt < (less than )4 O, d i# c# F ^
H7 Q! p( p) c6 ?8 E4 }
$lte <= (less than or equal to )
1 k( R |9 C3 I4 c. \+ C& Z5 o. p2 \9 ~% ~; A
$gt > (greater than )3 M2 e5 a. w2 E
; [- b: L" e$ E5 e" j Y/ V$gte >= (greater than or equal to)
) f. d: [% k9 t# @% N$ H; x4 i# m1 k! k% L7 j- z
* i5 l- n! d+ N! O
8 _ U4 [7 C+ ^2 g8 K/ M3 I4 B
$ne != (not equal to)不等于 {'age': {'$ne': 20}}5 D( Y r! V1 A
0 E9 S7 E' T- ~7 x( F$ a7 m6 P) U$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
/ N& U" J, m* q+ i0 @ a5 Q9 M9 H- o- I
$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list
% y% l0 s( `" g/ [- U) [; t# Z3 X2 K3 `2 U
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字" N' x% h2 \4 u: d3 m- ]) o) o
! h- l: d. @/ G8 R6 o! Z8 K1 k
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
; `+ f% u; N) Z" W8 B2 h6 V* V
/ d6 V" _3 d/ q$type 类型判断 {'age': {'$type': 'int'}} age的类型为int: U% H& y+ K6 j# V* a
8 D' h. r% J. g
$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串3 }0 x% i2 i& I# Z( k; J( H- Q) h& I
! w$ Z4 K5 N$ c# Z! p* ]$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
# H9 U5 G0 l, s- {) Y$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);- Q* M7 e& }' @6 z8 _. X
9 U7 D# c2 n5 w* \
$exists 键是否存在 {finaGoalLine:{'$exists':true}}1 W! G) N) x( W4 B7 Y
3 ?, J) ~3 J j6 W, T e3 _% \
$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]. F6 c# C2 H8 d% Q
0 c+ O c2 W% {+ N1 P$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],
% T; g$ s I" ?& c$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3
( F4 M; N) G) P, r
/ i) ~6 d3 S: ^4 n9 A
$ H7 V/ C9 F. @$ v) W
! D H0 f: ?& x; u$ \) q: S: W
7 l( z5 [0 }8 V7 X' g# J
- S; O& a! ~' Z. L) y$ f) k
2 }! h5 D& A- c6 z" M2 Y3 h2 c9 h' R' I+ [+ H
! \. G0 d; A% b% H2 C+ g: ?6 z
组合使用方法如下:9 w7 E) r0 f u' i& A& N
9 q0 M7 J/ p; a H% W/ \- cdb.user.find({"age":{"$gte":18,"$lte":25}})0 [# Q1 n4 u* A" |/ k
V/ T$ X" t2 t+ B& @( J
0 N1 a- {, W; f# a: U
' z4 a. y) h8 {& p
对于日期的条件查询方法:: `9 k0 f* A, [2 Y9 f
# r2 Q. ?; F5 H0 R/ i1 e; F$ k2 ?" B
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
0 S0 C- l8 c4 e5 z9 K9 p5 [: p) R1 R
, N/ H% V( Z. \4 X
0 G# ~' Z% }7 |9 c# _2) 不等于 $ne
9 g0 k# ]/ h! r9 Z, ?+ B& l2 A, Q' |& j8 W$ i4 k
例子:6 l- {2 p3 a! {
- g' l3 ?5 U- {* t8 l
db.taobao.find( { age: { $ne : 10} } );
1 l; l3 s+ [3 s- Vphp7 查询mongodb方法大全4 E) T2 B8 v a A
! h+ @" J. E/ b, {
" {- n3 _) o5 {7 k+ L2 y3 l+ O8 N- a2 ~0 i$ t R- C
$ s* T5 \2 Y1 s2 r! X
2 e; k1 K5 V0 Q2 y3 b) G" ?& C; _) i O* C# X
; d$ V! E" ^1 w7 Q- A' e8 G
8 T& `1 m6 ^. {5 @& Z! a3 r1 D0 u, U) K# \) F* X, P
V4 c8 A# U& c" u( f- R- h
h" n0 A1 g. x+ `5 E Z2 }9 e
8 l0 d& H% K( O( I/ [" O, f |
|