管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:% ^% ^$ k, U: _4 M. O
' `. X d9 D: [5 A9 ~4 z
db.getCollection('student').find({'age':{'$gt':'20'}}): q" Y/ u# r2 p; D- I3 g
8 `* k* P. H3 h% k v
3 ]: S- a' m' }- [. l/ `" r$ W4 ~% D5 y
$lt < (less than )
# u+ X% P2 `, Y+ ~: C
' `4 a) \5 ^# M! P. k1 W7 @$lte <= (less than or equal to )( t) V1 z3 E) `9 I
9 j( g" F4 V. j9 I; g2 q; O$gt > (greater than )
( e. W; i9 M1 S! W9 D7 p1 i; \. i4 J7 H F4 D! r
$gte >= (greater than or equal to)7 p( I1 y3 D2 i0 h H# I
7 [4 J f, ], g: M$ D
: q2 e0 T! M% D( x, W- N! e R* v7 Q7 [
$ne != (not equal to)不等于 {'age': {'$ne': 20}}
3 L9 [) z) m# w+ m, K
! H! \9 t+ s5 Q: [2 e, a# G/ m$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
, g# r/ s0 k0 z- x4 S0 T+ \6 T: |) [( U O2 a
$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list
# |% L+ J1 I, h- h- ~ U7 K1 x/ Q7 D6 F$ I! T [
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字
4 H* a2 {6 _/ H/ G" ]" s; ?* n& |; q* Q
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
3 G/ ~- ^! w8 `, v
: p! I( e- [4 c7 u$type 类型判断 {'age': {'$type': 'int'}} age的类型为int$ f: K4 @2 p7 ]
- a. F' r7 p, g6 Q: p! m7 Y. _0 j$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串
0 z8 e5 d4 Y. b! M D8 V4 U- h& F8 q& O# ^' _
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
' P4 ?9 ^/ e# W9 ~# \$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
% Y# V j& P' m! O9 N$ o8 L& M n1 \0 _
$exists 键是否存在 {finaGoalLine:{'$exists':true}}; K% B6 l* f6 @
, k& x+ C) r% J7 o# N! r5 S& G- k$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]
! ?3 P# _" Z7 b s) D9 ?% H% @5 F9 t6 |5 O! a
$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],* Z) K4 ~. k/ l. g. z' f8 f
$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3 * I) k. g+ {6 L. w, t, h
7 ~& i* t1 c3 W1 }& y0 R8 O) \
0 W/ v9 Z2 s& _9 `/ X4 I0 O) k+ U+ Q5 K
x A5 z. ^; \/ K# _0 z6 N! `" o$ |" @9 }) \! [: o# ~
4 q) [* _5 `9 G# o( g% \ ^3 y* U9 B0 e$ b
- Q+ E9 s% t1 i: a2 ^2 t* e
e5 U0 y8 x9 ]4 |7 r组合使用方法如下:
1 r* @$ A0 i; @4 y7 K- v7 X7 O- O( V, f5 D+ ~. D! }
db.user.find({"age":{"$gte":18,"$lte":25}})2 |+ J# b$ Y u& B% M
' q4 l6 }' ?4 }1 U9 E
5 V- e0 n* S) m, Z) s; r0 z
- X4 L9 q/ c" i" E9 P) D对于日期的条件查询方法:
* Z/ [( L! g3 o( Y3 j; L( U& n7 @+ ^+ T$ h5 c
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
/ g9 }5 b! U3 h0 ?/ F
0 y2 L& U8 J$ O: h1 O4 J: M: O2 K! N6 I6 E1 Y3 l
/ A* W6 T$ F" g" H; |) ]" H
2) 不等于 $ne
1 m# J0 ^+ y" \$ J- r+ ~4 C# q; l3 ~: w% E
例子:
8 l2 k9 y) t8 r* b; t7 S' g6 I3 [! i1 B2 p+ s
db.taobao.find( { age: { $ne : 10} } );
; C( x9 h7 O! ^php7 查询mongodb方法大全
! y( _! h0 ~: Z$ R' D
3 k9 x3 F8 G, z1 g+ E: q2 m- a. t! p. r0 ^* Q
2 f: ?$ q6 T. m8 m
! A7 |# E7 C5 B2 N9 _+ K+ i: H4 y7 N& `
8 _$ G- v" f9 w9 f7 a# J
& N. N. _, l: U8 \3 ?' f, \! g- k: {! }! c% l
# p1 P9 E8 y) s g: V3 F
- U! e$ M) S, C- |+ `1 s' O8 W. z. T/ i& w# L/ \+ A
+ o- r+ v, f" x |
|