Mongodb 学习笔记3:基本操作

说明:主要以Mongodb权威指南为参考资料,其中有些示例是直接截图。

  • 创建——insert 为集合添加新文档。如果要插入多个文档,使用批量插入会快一些。一次传递一个由文档构成的数值给数据库(多个文档插入到一个集合起作用)。没有提供给shell的“批量插入方法”,for循环,里面就是insert。导入原始数据则用mongodimport。


  • 读取——find /findOne(),返回所有键值。也可以通过第二个参数来返回指定的键值。

查询条件:条件句是内层文档的键,修改器是外层文档的键。

<、<=、>、>= 、!=分别对应:"$lt"、"$lte"、"$gt"、"$gte"、"$ne"

"$in"/"$nin":返回一个键的多个匹配值。

"$or":多个匹配键值。

"$not":元条件句,即可以用在任何其他条件之上。

正则表达式:

数组查询:

"$all"

"$size": 查询指定长度的数组,不能和其他查询子句结合。

"$slice":返回数组的一个子集。默认返回文档所用的键。

查询内嵌文档:可以用。表示法查询内嵌的键,这也是待插入的文档不能包含。的原因。

要正确指定一组条件,而不是指定每个键,要使用"$selemMatch"。

$where 查询:不到必要时,不要使用。


  • 更新——update(需要更新的文档限定条件,新的文档)

整体更新:

局部更新:

更新文档——修改器的使用("_id"的值不能改变,其他的键值可以改变,包括索引)

1、"$set"修改器——用来指定一个键的值。不存在则创建它,存在则更新。

增加、修改、删除键的时候应该使用$修改器。

增加

修改

删除

2、增加和减少——"$inc"增加已有键的值,不存在则创建一个新键。只能用于整数、长整数、双精度浮点数。且其值必须为数字,不能使用字符串、数组等其他非数字的值。

如图:开始不存在score键,先创建;接着要加5000分;最后扣除1000分。

3、数组修改器——只能用于值为数组的键上。

"$push":在数组末尾加一个元素,没有则创建一个新的数组。

"$ne"和"$push"组合避免重复

"$addToset"可以避免重复,也可以"$each"组合 起来,添加多个不同的值。

 

 

 "$pop" 从数组中删除元素。

{"$pop":{key:1}} 从数组末尾删除一个元素;

{"$pop":{key:-1}} 从数组头部删除一个元素;

{"$pop":{key:value}}指定数组中要删除的值。

4、数组定位修改器——通过位置(下标从0开始)或者定位操作符("$")。

"$"用来定位查询文档已经匹配的元素,并进行更新。只更新第一个匹配的元素。

5、upsert更新——没有文档符合更新条件,则以更新条件和文档为基础创建一个新的文档;找到则正常更新

update()第三个参数为Ture表示是一个upsert更新。

6、更新多个文档——默认情况下,只更对符合条件的第一个文档进行更新,设置update第四个参数为ture可以更新多个文档。


  • 删除——remove()删除集合中的所有文档,但是不删除集合本身,原有的索引也会保留。

  


当有属性和目标集合同名的时候,可以使用getCollection函数:    db.getCollection("version");

查看集合名称中含有无效javascript字符:         db.getCollection("foo-bar");

在Javascript中,x.y与x['y']完全等价。对每个子集合操作的时候可以迭代。


  

原文地址:https://www.cnblogs.com/lucyawei/p/3042078.html