• MongoDB基础知识 02


    MongoDB基础知识 02

    6 数据类型

    6.1 null : 表示空值或者不存在的字段

    {"x":null}

    6.2 布尔型 : 布尔类型只有两个值true和false

    {"x" : true}

    6.3 数值  :默认使用64位浮点型数值

    对于整数值,可使用NumberInt类或者NumberLong类,

    {"x":3.14}
    {"x":3}
    
    {"x",:NumberInt("3")}
    {"x",:NumberLong("3")}

    6.4 字符串:UTF-8字符串都可表示为字符串类型的数据。

    6.5 日期:被存储为自新纪元以来经过的毫秒数,不存储时区。Date()返回的是字符串(日期的字符串表示), new Date()返回的是日期的对象。

    6.6 正则表达式:查询时,使用正则表达式作为 限定条件,语法也和javascript的正则表达式语法相同。

    6.7 数组 : 数据列表或者数据集可表示为数组。

    6.8 内嵌文档:文档可以嵌套其他文档。

    6.9 对象id :对象id是一个12字节的ID,是文档的唯一标识。

    6.10 二进制数据 :任意字节的字符串。

    6.11 代码 : 查询和文档中可以包括任意JavaScript代码。

    7 使用MongoDB shell

    7.1 对于MongoDBt特有的功能,可以使用help命令查看:

    > help
        db.help()                    help on db methods
        db.mycoll.help()             help on collection methods
        sh.help()                    sharding helpers
        rs.help()                    replica set helpers
        help admin                   administrative help
        help connect                 connecting to a db help
        help keys                    key shortcuts
        help misc                    misc things to know
        help mr                      mapreduce
    
        show dbs                     show database names
        show collections             show collections in current database
        show users                   show users in current database
        show profile                 show most recent system.profile entries with time >= 1ms
        show logs                    show the accessible logger names
        show log [name]              prints out the last segment of log in memory, 'global' is default
        use <db_name>                set current database
        db.foo.find()                list objects in collection foo
        db.foo.find( { a : 1 } )     list objects in foo where a == 1
        it                           result of the last line evaluated; use to further iterate
        DBQuery.shellBatchSize = x   set default number of items to display on shell
        exit                         quit the mongo shell

    可以直接在shell中输入函数名,看到相应函数的实现代码:

    > db
    zhangxindb
    > show collections
    blog
    system.indexes
    > db.blog.update
    function ( query , obj , upsert , multi ){
        assert( query , "need a query" );
        assert( obj , "need an object" );
    
        var wc = undefined;
        // can pass options via object for improved readability
        if ( typeof(upsert) === 'object' ) {
            assert( multi === undefined,
                    "Fourth argument must be empty when specifying upsert and multi with an object." );
    
            var opts = upsert;
            multi = opts.multi;
            wc = opts.writeConcern;
            upsert = opts.upsert;
        }
    
        var result = undefined;
        var startTime = (typeof(_verboseShell) === 'undefined' ||
                         !_verboseShell) ? 0 : new Date().getTime();
    
        if (!wc)
            wc = this.getWriteConcern();
    
        if ( this.getMongo().writeMode() != "legacy" ) {
            var bulk = this.initializeOrderedBulkOp();
            var updateOp = bulk.find(query);
    
            if (upsert) {
                updateOp = updateOp.upsert();
            }
    
            if (multi) {
                updateOp.update(obj);
            }
            else {
                updateOp.updateOne(obj);
            }
    
            try {
                result = bulk.execute(wc).toSingleResult();
            }
            catch( ex ) {
                if ( ex instanceof BulkWriteError || ex instanceof WriteCommandError ) {
                    result = ex.toSingleResult();
                }
                else {
                    // Other exceptions thrown
                    throw ex;
                }
            }
        }
        else {
            this._validateUpdateDoc(obj);
            this.getMongo().update(this._fullName, query, obj,
                               upsert ? true : false, multi ? true : false );
    
            // enforce write concern, if required
            if (wc)
                result = this.runCommand("getLastError", wc instanceof WriteConcern ? wc.toJSON() : wc);
        }
    
        this._printExtraInfo("Updated", startTime);
        return result;
    }
    > 
    View Code

    7.2 使用shell执行脚本 

    除了以交互方式使用shell,还可以直接传递脚本给shell。

    例如:mongo script1.js script2.js script3.js

    也可以使用load()函数,从交互式shell中运行脚本。

    例如:load("script1.js")

  • 相关阅读:
    LeetCode
    LeetCode
    Centos7防火墙快速开放端口配置方法
    SQLServer2008R2无人值守批处理脚本自动化安装
    sql server2014企业版无人值守批处理脚本自动化安装
    什么是Docker?
    安全终端模拟工具Xshell 5使用密钥认证登录配置详细教程
    SVN服务端VisualSVN数据转移说明
    RTX服务端用户数据迁移说明
    win7系统保护配置现错误“文件名、目录名或卷标语法不正确。(0x8007007B)
  • 原文地址:https://www.cnblogs.com/sdlypyzq/p/3929581.html
Copyright © 2020-2023  润新知