MongoDB中javascript脚本编程简介和入门实例

所属分类: 数据库 / MongoDB 阅读数: 113
收藏 0 赞 0 分享

注:作者使用的mongodb版本为2.4.7。

入门例子

复制代码 代码如下:

conn = new Mongo();
db = conn.getDB("db-name");  //选择数据库
db.auth("user-name","password");  //用户验证

var map = function() {
    split_result = this.sentence.split(" ");
    for (var i in split_result) {
        var word = split_result[i].replace(/(^\s*)|(\s*$)/g,"").toLowerCase(); //去除了单词两边可能的空格,并将单词转换为小写
        if (word.length != 0) {
            emit(word, 1);
        }
    }
}

var reduce = function(key, values) {
    print(key+":"+Array.sum(values));
    return Array.sum(values);
}

db.data.mapReduce(
    map,
    reduce,
    {out:{merge:"mr_result"}}
)

保存为test01.js,在终端中运行:

复制代码 代码如下:
$ mongo test01.js

运行结束后可以在集合mr_result中查看mapreduce结果。

值得注意的是,在js脚本中如果直接:

复制代码 代码如下:
db.mr_result.find();

是无法输出结果的。

应该使用下面的方式输出结果:

复制代码 代码如下:
conn = new Mongo();
db = conn.getDB("db-name");  //选择数据库
db.auth("user-name","password");  //用户验证

var cursor = db.mr_result.find();

while(cursor.hasNext()) {
    r = cursor.next();
    print(r["_id"] + "\t" + r["value"]);
}


保存为test02.js,运行:
复制代码 代码如下:
$ mongo test02.js

结果如下:
复制代码 代码如下:

a       1
code    1
collection      1
consider        1
contains        1
documents       1
error   1
follow  1
following       3
found   1
get     1
i       2
in      1
link    1
map-reduce      1
of      1
on      1
operations      1
orders  1
prototype       1
that    1
the     4
this    1
when    1

使用load()函数

load()函数用于引入其他文件,这为代码重用提供了便利。 最简单的情形是,把数据库连接操作的代码放在一个单独的文件里,在当前目录建立lib,在lib目录下创建文件base_operation.js,内容如下:

复制代码 代码如下:

function BaseOperation() {

    /*
    连接数据库,返回连接对象
    */
    this.getDB = function() {
        conn = new Mongo();
        db = conn.getDB("db-name");
        db.auth("user-name","password");
        return db;
    }
}


在当前目录下建立文件test03.js,内容如下:
复制代码 代码如下:

load("lib/base_operation.js");
BO = new BaseOperation();
db = BO.getDB();

var cursor = db.mr_result.find();

while(cursor.hasNext()) {
    r = cursor.next();
    print(r["_id"] + "\t" + r["value"]);
}


运行test03.js的效果和test02.js相同。

更多精彩内容其他人还在看

MongoDB插入、更新、删除文档实现代码

本文通过实例代码给大家简单介绍了mongodb插入、更新、删除文档的方法,需要的的朋友参考下吧
收藏 0 赞 0 分享

mongodb 修改器($inc/$set/$unset/$push/$pop/upsert)

对于文档的更新除替换外,针对某个或多个文档只需要部分更新可使用原子的更新修改器,能够高效的进行文档更新。更新修改器是中特殊的键
收藏 0 赞 0 分享

mongodb 数据类型(null/字符串/数字/日期/内嵌文档/数组等)

MongoDB的文档类似于JSON,JSON只是一种简单的表示数据的方式,只包含了6种数据类型(null、布尔、数字、字符串、数组及对象),需要的朋友可以参考下
收藏 0 赞 0 分享

MongoDB的创建、更新和删除

下面开始学习MongoDB最重要也是最基础的部分:C(创建)R(查询)U(更新)D(删除);由于R(查询)操作相对来说内容比较多,也比较繁琐,同时使用频率也比较高,所以下一篇会拿出来单独介绍。废话不多说,连上服务器,我们直接进入正题
收藏 0 赞 0 分享

MongoDB的下载、安装与部署方法

这篇文章主要介绍了MongoDB的下载、安装与部署方法,需要的朋友可以参考下
收藏 0 赞 0 分享

MongoDB的基础知识简介

这篇文章主要介绍了MongoDB的基础知识简介,需要的朋友可以参考下
收藏 0 赞 0 分享

MongoDB的查询方法

这篇文章主要介绍了MongoDB的查询方法,需要的朋友可以参考下
收藏 0 赞 0 分享

MongoDB的索引

数据库中的索引就是用来提高查询操作的性能,但是会影响插入、更新和删除的效率,因为数据库不仅要执行这些操作,还要负责索引的更新
收藏 0 赞 0 分享

MongoDB数据查询方法干货篇

查询操作在我们日常操作数据库的时候是必不可少的一部分,最近有些空闲时间,所有就将MongoDB数据查询的一些方法技巧总结了处理,这篇文章主要介绍了MongoDB数据查询的相关资料,需要的朋友可以参考借鉴,一起来看看吧。
收藏 0 赞 0 分享

MongoDB数据更新方法干货篇

之前给大家分享了MongoDB中数据查询的相关方法和技巧,那么下面这篇文章主要给大家介绍了MongoDB中数据更新方法的相关资料,文中给出了详细的示例代码,需要的朋友可以参考借鉴,下面来一起看看吧。
收藏 0 赞 0 分享
查看更多