基本查询:
find:
若是只想查询在 array 里面全部都出现的字段,用$all,无顺序关系:
====================================================
== 不过目测 MongoDB 里的 find 是有点问题的吧?或者说语法的设计上有点不舒服 ==
== 比如: ==
== 有friends: { name: 'A', age: 12 }的信息 ==
==但是此处查询 friends: { age: 12, name: 'A' },是找不到的, ==
== 可是按照第二种方式能找到,也就是说要匹配 friends 里的信息,得顺序一致才可以 ==
==
== 可是若这样查询 ==
== db.member.find( { name: 'scheme', friends: { 'name': 'A', 'age': 12 } } ) ==
== 还是db.member.find( { friends: { 'name': 'A', 'age': 12 }, name: 'scheme' } ) ==
== 却又是顺序无关的,都可以查询, ==
== 同样是{}格式,只不过一个是子结构,外层的可以,子结构却不行, ==
== 这样的设计确实很不合理 ==
==
========================================================
find的第二个参数,可以用来显示要指定输出的字段
$size 获取指定长度的字段
(海洋要走了,时间真快,还是放点愉快的音乐吧)
$slice 类似 python 中的切片
(和胖子的感情难道只是因为截拳道么,截拳道退役了,就不联系了,海洋后来也就没去截拳道了)
(还是说男生间的感情都只是兴趣牵起来的线?)
(不过Y不是这样的,J,D,Z也不是的)
内嵌文档查询:
信息:
查second_name 为 S 的人,点表示法来精确表示内嵌文档的键
当内嵌文档变得复杂后,如键的值为内嵌文档的数组,这时候要精确匹配一条
朋友昵称为名字为 a 年龄为 24 的人,用点缀法,找出来有问题,不存在,却找到了
可以用$elemMatch来指定一组条件限定到数组的单条文档上
还想喝点咖啡什么的,啤酒也可以,肚子也饿了。
===================== 2014/6/11 ======================
联合查询:
链接运算符实现多个表之间的查询
由于 MongoDB 本身的特点,不建议用多个 collection 来处理
但是有些地方必须得用关联查询,可以用手工关联查询和 DBRef 方式关联。
DBRef 就是一个文档里的一个属性指向另一个文档的指针。