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;
}
>

7.2 使用shell执行脚本 

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

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

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

例如:load("script1.js")

MongoDB基础知识 02的更多相关文章

  1. MongoDB基础知识 01

    MongoDB基础知识  1. 文档  文档是MongoDB中的数据的基本单元,类似于关系型数据库管理系统的行. 文档是键值对的一个有序集.通常包含一个或者多个键值对. 例如: {”greeting& ...

  2. DataBase MongoDB基础知识记录

    MongoDB基础知识记录 一.概念: 讲mongdb就必须提一下nosql,因为mongdb是nosql的代表作: NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型 ...

  3. Mongodb 笔记01 MongoDB 简介、MongoDB基础知识、启动和停止MongoDB

    MongoDB 简介 1. 易于使用:没有固定的模式,根据需要添加和删除字段更加容易 2. 易于扩展:MongoDB的设计采用横向扩展.面向文档的数据模型使它能很容易的再多台服务器之间进行分割.自动处 ...

  4. MongoDB基础知识记录

    MongoDB基础知识记录 一.概念: 讲mongdb就必须提一下nosql,因为mongdb是nosql的代表作: NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型 ...

  5. 常见问题:MongoDB基础知识

    常见问题:MongoDB基础知识 ·MongoDB支持哪些平台? ·MongoDB作为托管服务提供吗? ·集合(collection)与表(table)有何不同? ·如何创建数据库(database) ...

  6. day03-MySQL基础知识02

    MySQL基础知识02 4.CRUD 数据库CRUD语句:增(create).删(delete).改(update).查(Retrieve) Insert 语句 (添加数据) Update 语句(更新 ...

  7. MongoDB 基础知识

    一. 基础知识 1. MongoDB是一个文档型的数据库,文档就是一个键值对的有序集合. 例如这样:{"greeting":"hello world"} 2. ...

  8. MongoDB基础知识(二)

    一.基本概念 1:文档(document)是MongoDB中数据的基本单元,非常类似于关系型数据库管理系统中的行 2:集合(collection)可以看做是一个拥有动态模式(dynamic schem ...

  9. MongoDB基础知识

    一.Mongodb简介 Mongodb是基于分布式文件存储的数据库,用C++编写: Mongodb是nosql(not-only-sql)数据库: Mongodb '无状态模式',不用去设计,直接用, ...

随机推荐

  1. ios后台程序持续运行方法

    iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的.在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验.但是有很多社交类的软件,如果因为它在后台就不能刷新到新的数据的话 ...

  2. C#一些小技巧(二)

    教你们怎么改配色方案,因为本人智障了很久,每次想改颜色的时候都会看到一大圈的选项,难以琢磨,但是智障了那么久终于被我找到了所有的关联. 首先,要告诉你们的是,其实C#里面要改的东西只有那么几个,但是注 ...

  3. 开源字体包缩减font-spider

    最近公司产品用微软雅黑,被告~  领导要求产品后台系统必须更换字体,美工给了个宋体,个人觉得太丑,就网上搜了些处理方法使用 CSS属性 @font-face 自定义字体, 最后决定用 思源黑体 (思源 ...

  4. Java环境变量配置&解决版本不一致问题

    之前用Myeclipse编译运行Java没有问题 但是突然想用简单点的NotePad++以及cmd直接编译运行Java 这就让我倒腾了一晚上 先说下问题的解决,再总结下查阅的一些知识. 1.进行win ...

  5. 24种设计模式--抽象工厂模式【Abstract Factory Pattern】

    女娲造人,人是造出来了,世界是热闹了,可是低头一看,都是清一色的类型,缺少关爱.仇恨.喜怒哀乐等情绪,人类的生命太平淡了,女娲一想,猛然一拍脑袋,忘记给人类定义性别了,那怎么办?抹掉重来,然后就把人类 ...

  6. 理解ThreadLocal背后的概念

    介绍 我之前在任何场合都没有使用过thread local,因此没有注意到它,直到最近用到它的时候. 前提信息 线程可以理解为一个单独的进程,它有自己的调用栈.在java中每一个线程都有一个调用栈或者 ...

  7. jquery 属性与css操作

    属性1.属性    1.1 attr(name|properties|key,value|key,fn)        1) 获取属性值    $("img").attr(&quo ...

  8. mysql datestamp坑

    每次更改行数据,该行第一个datestamp如不赋值,会自动更新为当前时间.赋值还要注意用下new Date(time).updated_at要写在created_at前面...

  9. 精通 Oracle+Python,第 4 部分:事务和大型对象

    通过 Python 管理数据事务.处理大型对象 2010 年 3 月发布 事务包含一组 SQL 语句,这组 SQL 语句构成数据库中的一个逻辑操作,如转帐或信用卡支付操作.将 SQL 语句聚合到一个逻 ...

  10. Django 基础

    Django 的路由系统 在 django 的 URLconf 配置文件 urls.py 中根据一个 URL 对应 views 的一个函数来处理用户的请求. 1.基本的 urls 对应 urlpatt ...