mongodb中使用distinct去重的简单方法

MongoDB的destinct命令是获取特定字段中不同值列表。该命令适用于普通字段,数组字段和数组内嵌文档.

mongodb的distinct的语句:

代码如下:

db.users.distinct('last_name')

等同于 SQL 语句:

代码如下:

select DISTINCT last_name from users

表示的是根据指定的字段返回不同的记录集。
一个简单的实例:

//
> db.addresses.insert({"zip-code": 10010})
> db.addresses.insert({"zip-code": 10010})
> db.addresses.insert({"zip-code": 99701}) 

> // shell helper:
> db.addresses.distinct("zip-code");
[ 10010, 99701 ] 

> // running as a command manually:
> db.runCommand( { distinct: 'addresses', key: 'zip-code' } )
{ "values" : [ 10010, 99701 ], "ok"
//
> db.comments.save({"user": {"points": 25}})
> db.comments.save({"user": {"points": 31}})
> db.comments.save({"user": {"points": 25}}) 

> db.comments.distinct("user.points");
[ 25, 31 ]

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

(0)

相关推荐

  • Mongodb 副本集搭建问题总结及解决办法

    Mongodb 副本集搭建问题总结及解决办法 Mongodb数据库的副本集是由多台服务器组成,基中一台是主节点,其它为从节点,如果主节点宕机就自动切换到任意一个从节点.如果以前的主节点修复完成和正常运行就自动变成从节点,从节点不能查询数据.也可以在一台服务器装多个Mongodb端口不一样. 在我以往的认知中,一个系统一旦正式上线,多半不会轻易的迁移服务器,尤其是那种涉及到多个关联应用,涉及到多台硬件服务器的系统,因为这种迁移将是牵一发而动全身的. 但是,却仍然有这种情况存在,就如我这几天主要负责

  • Mongodb3.0.5 副本集搭建及spring和java连接副本集配置详细介绍

    Mongodb3.0.5 副本集搭建及spring和java连接副本集配置详细介绍 一.基本环境: mongdb3.0.5数据库 spring-data-MongoDB-1.7.2.jar mongo-Java-driver-3.0.2.jar Linux-redhat6.3 tomcat7 二.搭建mongodb副本集: 1.  分别在三台linux系统机上安装mongodb,(为避免和机器上原有的mongodb端口冲突,这里设为57017): 192.168.0.160 192.168.0.

  • MongoDB常用操作命令大全

    如:如果你想创建一个"myTest"的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫"myTest"的数据库. 一.数据库常用命令1.Help查看命令提示 复制代码 代码如下: helpdb.help();db.yourColl.help();db.youColl.find().help();rs.help(); 2.切换/创建数据库 复制代码 代码如下: use you

  • MongoDB整库备份与还原以及单个collection备份、恢复方法

    mongodump.exe备份的原理是通过一次查询获取当前服务器快照,并将快照写入磁盘中,因此这种方式保存的也不是实时的,因为在获取快照后,服务器还会有数据写入,为了保证备份的安全,同样我们还是可以利用fsync锁使服务器数据暂时写入缓存中. 高效开源数据库(mongodb)下载地址:http://www.jb51.net/softs/41751.html 备份前的检查> show dbsMyDB 0.0625GBadmin (empty)bruce 0.0625GBlocal (empty)t

  • mongodb 数据库操作--备份 还原 导出 导入

    一,mongodump备份数据库 1,常用命令格 mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 如果没有用户谁,可以去掉-u和-p. 如果导出本机的数据库,可以去掉-h. 如果是默认端口,可以去掉--port. 如果想导出所有数据库,可以去掉-d. 2,导出所有数据库 [root@localhost mongodb]# mongodump -h 127.0.0.1 -o /home/zhangy/mongodb/ connecte

  • MongoDB查询操作限制返回字段的方法

    映射(projection )声明用来限制所有查询匹配文档的返回字段.projection以文档的形式列举结果集中要包含或者排除的字段.可以指定要包含的字段(例如:{field:1})或者指定要排除的字段(例如:{field:0}).默认_id是包含在结果集合中的,要从结果集中排除_id字段,需要在projection中指定排除_id字段({_id:0}).除了_id字段,不能在一个projection中联合使用包含和排除语意. 返回匹配文档的所有字段: 如果没有指定projection,fin

  • MongoDB各种查询操作详解

    一.find操作 MongoDB中使用find来进行查询,通过指定find的第一个参数可以实现全部和部分查询. 1.查询全部 空的查询文档{}会匹配集合的全部内容.如果不指定查询文档,默认就是{}. 2.部分查询 3.键的筛选 键的筛选是查询时只返回自己感兴趣的键值,通过指定find的第二个参数来实现.这样可以节省传输的数据量,又能节省客户端解码文档的时间和内存消耗. 查询时,数据库所关心的查询文档的值必须是常量. 二.查询条件 1.比较查询 $lt,$lte,$gt,$gte,$ne和<,<

  • MongoDB数据库插入、更新和删除操作详解

    一.Insert操作 Insert操作是MongoDB插入数据的基本方法,对目标集合使用Insert操作,会将该文档添加到MongoDB并自动生成相应的ID键.文档结构采用类似JSON的BSON格式.常见的插入操作主要有单条插入和批量插入两种形式.插入时只是简单地将文档存入数据库中,不进行额外的验证,也不会执行代码,所以不存在注入式攻击的可能. 1.单条插入 2.批量插入 MongoDB对批量插入的支持是通过传递多个文档组成的数组到数据库来实现的.由于它插入数据是通过发送TCP请求的,这样只需发

  • MongoDB插入数据的3种方法

    insert()方法:    下面是在inventory集合中插入一个三个字段的文档:        复制代码 代码如下: db.inventory.insert( { _id: 10, type: "misc", item: "card", qty: 15 } ) 在实示例中,文档有一个用户指定的值为10的_id字段,这个值必须在inventory集合中唯一.update()方法:    调用update()方法使用upsert标志创建一个新文档当没有匹配查询条件

  • mongodb 实现远程连接

    mongodb远程连接配配置,分以下4步. 1,添加管理员账 > use admin switched to db admin > db.addUser('tank','test'); 2,配置mongodb.conf #bind_ip = 127.0.0.1 //注释此行 auth = true //将此行前的注释去掉 3,重启mongodb /etc/init.d/mongod 4,防火墙开放27017端口 iptables -A INPUT -p tcp -m state --state

  • PHP中MongoDB数据库的连接、添加、修改、查询、删除等操作实例

    PHP 扩展mongon.mod.dll下载http://cn.php.net/manual/en/mongo.installation.php#mongo.installation.windows 然后php.ini添加 extension=php_mongo.dll 最后phpinfo() 查找到 表标PHP已经自带了mongo功能,你就可以操作下面的代码(但是你必须有安装mongodb服务器) 一.连接数据库 使用下面的代码创建一个数据库链接 复制代码 代码如下: <?php $conne

随机推荐