MongoDB 常用命令总结

 更新时间:2015年05月12日 09:42:09   投稿:hebedich  
Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。Mongo还可以解决海量数据的查询效率,当数据量达到50GB以上时,Mongo数据库访问速度是MySQL10 倍以上

简单的的增删改查数据

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

例如,我们希望在 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}

复制代码 代码如下:

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。

以上所述就是本文的全部内容了,希望大家能够喜欢。

相关文章

  • MongoDB学习笔记之分组(group)使用示例

    MongoDB学习笔记之分组(group)使用示例

    这篇文章主要介绍了MongoDB学习笔记之分组(group)使用示例,本文直接给出一组测试数据,然后练习分组的基本使用,需要的朋友可以参考下
    2015-07-07
  • Mongodb常见错误与解决方法小结(Mongodb中经常出现的错误)

    Mongodb常见错误与解决方法小结(Mongodb中经常出现的错误)

    这篇文章主要介绍了Mongodb常见错误与解决方法小结(Mongodb中经常出现的错误),需要的朋友可以参考下
    2017-03-03
  • MongoDB通配符索引的用法实例

    MongoDB通配符索引的用法实例

    这篇文章主要给大家介绍了关于MongoDB通配符索引的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Mongodb数据库误删后的恢复方法(两种)

    Mongodb数据库误删后的恢复方法(两种)

    本文给大家分享两种方法来实现Mongodb数据库误删后的恢复,每种方法给大家介绍的都非常详细,需要的朋友参考下吧
    2018-08-08
  • MongoDB运行日志实现自动分割的方法实例

    MongoDB运行日志实现自动分割的方法实例

    这篇文章主要给大家介绍了关于MongoDB运行日志实现自动分割的方法,文中以一个MongoDB实例为例,写了一个脚本来实现自动分割MongoDB日志,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • CentOS系统下MongoDB安装及配置教程

    CentOS系统下MongoDB安装及配置教程

    这篇文章主要介绍了CentOS系统下MongoDB安装及配置教程,本文先是讲解了一些准备工作,然后讲解了安装MongoDB的服务器端和客户端工具的步骤,需要的朋友可以参考下
    2015-01-01
  • 基于MongoDB数据库索引构建情况全面分析

    基于MongoDB数据库索引构建情况全面分析

    下面小编就为大家带来一篇基于MongoDB数据库索引构建情况全面分析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • MongoDB中强大的统计框架Aggregation使用实例解析

    MongoDB中强大的统计框架Aggregation使用实例解析

    这篇文章主要介绍了MongoDB中强大的统计框架Aggregation使用实例解析,文中举了Python和Java使用Aggregation的数据统计例子进行讲解,需要的朋友可以参考下
    2016-01-01
  • Vercel+MongoDB Atlas部署详细指南

    Vercel+MongoDB Atlas部署详细指南

    这篇文章主要为大家介绍了Vercel+MongoDB Atlas部署的详细指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • MongoDB最基本命令速查笔记

    MongoDB最基本命令速查笔记

    这篇文章主要介绍了一些MongoDB最基本命令的这样一个速查笔记,包括MongoDB非正常关闭后无法启动问题的解决方法,需要的朋友可以参考下
    2016-01-01

最新评论