虚位以待(AD)
虚位以待(AD)
首页 > 数据库 > DB2数据库 > [整理]MongoDB常用命令总结

[整理]MongoDB常用命令总结
类别:DB2数据库   作者:码皇   来源:hello_katty的专栏     点击:

MongoDB 常用命令总结简单的的增删改查数据在查询结果中指定显示或者不显示某个字段例如,我们希望在 lessons 集合中查找所有数据,但是不希望在返回结果中包含 slides 字段;因为 slides 是一

MongoDB 常用命令总结

 

简单的的增删改查数据

在查询结果中指定显示或者不显示某个字段


例如,我们希望在 lessons 集合中查找所有数据,但是不希望在返回结果中包含 slides 字段;因为 slides 是一个巨长的以 base64 表示的图片数组,影响查询结果的阅读。

那么我们就可以在 query object 后面跟上一个参数。如下:
    db.lessons.find({
    }
    , {
    slides:0}
    );

同样也可以明确指定显示哪些字段:

    db.bios.find({
    }
    ,{
    name: 1, contribs: 1, _id: 0 }
    )

比较操作 – 大于和小于

我们要查询时间范围在 startTime 和 endTime 间的数据记录,同时要求 Content 内容是数字 1 到 5。

    db.wemessages.find( {
    $and: [ {
    CreateTime: {
    $gt: (startTime.getTime()/1000).toString()}
    }
    , {
    CreateTime: {
    $lt: (endTime.getTime()/1000).toString()}
    }
    , {
    Content: {
    $in: ['
    1'
    ,'
    2'
    ,'
    3'
    ,'
    4'
    ,'
    5'
    ]}
    }
    ]}
    );

这里我们使用了 $and 逻辑操作符,和 $gt, $lt, $in 比较操作符。

有关 MongoDB 的操作符,参见:http://docs.mongodb.org/manual/reference/operator/query/

更新一条记录的某些属性

使用 $set 表示只更新指定的字段,而不修改其他字段,我们一般情况下都会是这种意图。

    db.lessons.update({
    }
    , {
    $set:{
    '
    course_id'
    :'
    c.101'
    }
    }
    );

更新多条记录

使用 {multi: true},参见: http://www.lai18.com/content/411017.html

    db.lessons.update({
    }
    , {
    $set:{
    '
    course_id'
    :'
    c.101'
    }
    }
    , {
    multi: true}
    );
    db.muusers.update({
    username: '
    tom'
    }
    , {
    $set: {
    mobile: '
    6508639713'
    }
    }
    , {
    multi: true}
    );

排序查询结果

使用 sort 方法

    db.muusers.find().sort({
    firsttime: -1}
    );

-1 降序,1 升序

清爽地查看查询结果

使用 pretty 方法

    db.lessons.find({
    lesson: 1}
    , {
    slides: 0, mp3voice:0, wavvoice:0, wavvoicemin: 0}
    ).pretty();

查看不存在某个字段的记录

使用 $exists

    db.questions.find({
    '
    sequence_id'
    : 1, '
    pngslide'
    : {
    $exists: false}
    }
    );
    db.mycollection.find( {
    "price" : {
    "$exists" : false }
    }
    )

限定查询结果个数 limit, 以及跳过开始的多少条记录 skip

使用 limit 和 skip

    db.translation_memory.find({
    mp3voice: {
    $exists: false}
    }
    , null, {
    limit: 100}
    );

删除 collection 中的所有内容

使用 collection 的 remove 方法

    db.collection.remove();

得到 collection 中一个字段的长度

链式调用

    db.lessons.find({
    lesson: 1}
    ).toArray()[0].slides.join('
    '
    ).length

Collection 操作

更名 collection


使用 renameCollection 方法

    db.quizzes.renameCollection('
    questions'
    );

删除一个字段

使用 $unset

    db.questions.update({
    }
    , {
    $unset: {
    quiz_name:1}
    }
    , {
    multi: true}
    );
    db.learning_progress.update({
    }
    , {
    $unset: {
    lesson:1}
    }
    , {
    multi: true}
    );
    db.lessons.update({
    }
    , {
    $unset: {
    wavvoice:1, wavvoicemin:1}
    }
    , {
    multi: true}
    );

修改一个字段的名称

使用 $rename

    db.students.update( {
    _id: 1 }
    , {
    $rename: {
    '
    nickname'
    : '
    alias'
    , '
    cell'
    : '
    mobile'
    }
    }
    )

注意:有些MongoDB的关键词不能用做Collection的名称,例如:group。
相关热词搜索: 命令 常用