zoukankan      html  css  js  c++  java
  • 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']完全等价。对每个子集合操作的时候可以迭代。


      

  • 相关阅读:
    邮件与短信
    面向对象--第二部分
    #实现一个文件的拷贝功能,注意:大文件的问题
    link标签和script标签跑到body下面,网页顶部有空白
    svn利用TortoiseSVN忽略文件或文件夹
    CS6破解
    获得指定元素的透明度值
    IE6不支持position:fixed属性
    jQuery获取自身HTML
    margin负值
  • 原文地址:https://www.cnblogs.com/lucyawei/p/3042078.html
Copyright © 2011-2022 走看看