管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:7 _! q7 G. ^9 B" r. F
- M2 Z* `+ v/ `5 j. R" odb.getCollection('student').find({'age':{'$gt':'20'}})+ i( d( y: S- Z; }" K! D
# X2 t. X! V! i+ ~
! U3 e/ T5 T6 a" o: i
9 `2 ^' K1 @* ]0 K4 c& n: K* x9 u$lt < (less than ), S- S! Q6 \: f8 ?1 X: n# o
$ b# w8 b3 n* l* w1 w$lte <= (less than or equal to )$ |4 j1 p' n# H1 @# v
) W+ `% Z" P2 {$gt > (greater than )
) x. B' ?0 u! }) e7 h& f: h* q6 r R" |% }9 {% m# N
$gte >= (greater than or equal to)
& J& U5 t& E* ~2 M. g% ?; e0 Z: K- K6 K
6 k& {% z$ ?/ d6 y) Q) B3 f& m! v+ y
3 E d7 M" \' T- S8 l$ne != (not equal to)不等于 {'age': {'$ne': 20}}
' i+ N# M; R, _
/ c8 z' m3 T: c$ h* L; b$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
9 Q& Z3 |. R7 H8 S) t( Y+ N }* ^- R
& O W- g# y, o$ s$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list
2 Y. @$ B! R- P8 v$ T: {# H0 w3 P; q0 o" K9 {. ]4 \5 ?) F8 f& e3 J
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字; C4 r* T8 A% [. h- i
3 [) N3 c+ z4 K; {$ {5 \
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在: g/ p6 J f* N' o. c6 l2 V0 Q0 @
7 n6 k7 f9 [- L9 Y8 y5 |
$type 类型判断 {'age': {'$type': 'int'}} age的类型为int% h6 j5 f9 I- u# Z
. i/ F" J* `. X, u- [9 s
$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串
( m$ _$ S: |. s6 c; G& g3 M/ {/ U6 D/ ^- a) w0 b+ s! C
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]}): U F6 L, B9 s
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
3 Z* z+ M* @: T. V- A2 _' O
K9 J5 c. ]6 D. y1 o4 S/ X$exists 键是否存在 {finaGoalLine:{'$exists':true}}
5 B# l; u9 ~% d* [: b2 L1 u
+ B# N' o$ w! V" Z# s- Z$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]/ S& h# A; {0 |6 F& V4 Y4 }. q
3 G+ d+ W5 i# _; I% x' S3 b
$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],
; T# Z& ]3 {6 G+ G) ~2 o! Y$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3
3 y( K$ S' R% s0 e6 j Q1 s; p4 M; C" q2 T( ], e& N" m
. u; z6 i, G) u6 X3 U V" ]2 H# z, R, ^
) ^- T7 l, G- o. Z
* _9 l" g' h- a1 R
7 b7 K2 P+ @( V6 ?( g8 e: c
5 I$ u( h6 o; t& \7 i9 V0 B8 t. Y
+ }% T% d7 }9 T" E! S6 }: _组合使用方法如下:
& G% w; D" n0 Z A4 G4 H+ \0 F, }
$ C, R& ] r; Y8 ~3 m: Hdb.user.find({"age":{"$gte":18,"$lte":25}})
, K# m4 m7 }8 G# E! T6 o8 O! b
4 _7 T k" \$ ?( n5 V
% H! k$ }' p2 U3 Y, a* g: Z
) G T. M& \% L# |对于日期的条件查询方法:- ^5 P L. W. u5 S
' P, ?+ @/ `( Z5 X4 j- E6 Udb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})- z0 q4 f/ r; g4 s
+ I( T$ s" N, U+ r- k
4 I- C, E) w; G9 S s3 ]9 y* o, j" e4 z
2) 不等于 $ne a% [8 V' `- Y7 }
; S" ^( A& @! h6 E
例子:; D9 J C3 q( R: W" X
# x( c/ a+ X2 J) C
db.taobao.find( { age: { $ne : 10} } );# [+ i2 a5 E" M
php7 查询mongodb方法大全
& _9 D& s' s$ a, i- u
# ?5 v& w8 z" H5 d7 V+ U$ V
; s' d: l5 \5 m) g: [! x
! o% b; u. _9 h4 }4 F* V+ q% y6 ?' P2 f r/ m
8 Y* ]& ?& C# G5 p7 M+ P
! K2 B) _$ y) t/ z3 c5 |* G
1 _1 v7 |/ C3 e2 a- Y) s+ E/ Q9 r
* R. r* B1 K8 R7 ~& i
% q0 c/ k1 s5 n' ^) g
( R9 [6 v2 J) R0 r* I0 T4 w# L0 l# I' U# m& r6 Q; P4 b
, y }+ g- Q9 N7 L2 E# c |
|