`
suchj
  • 浏览: 147435 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MongoDB中的$addToSet and $each对中文支持

    博客分类:
  • sql
阅读更多

最近学习monogdb,在用update是,发现在一个问题。

按官方文档上的信息,$addToSet and $each是往一个数组里插入每个记录,并保证元素唯一。

如:

 

> db.search_loggers.update({user_id : 2}, {$addToSet : {words : {$each : [ 1, 2, 1, 2, 1]}}}, true)

 

 查看结果:

 

> db.search_loggers.find()
{ "_id" : ObjectId("4f90be7a09ee78ef9db6e01c"), "user_id" : 2, "words" : [ 1, 2 ] }

 

 再来个English的:

 

> db.search_loggers.update({user_id : 2}, {$addToSet : {words : {$each : [ "me", "me"]}}}, true)

 

 查看结果:

 

> db.search_loggers.find()
{ "_id" : ObjectId("4f90be7a09ee78ef9db6e01c"), "user_id" : 2, "words" : [ 1, 2, "me" ] }

 

 上面都没问题,来个中文的:

 

> db.search_loggers.update({user_id : 2}, {$addToSet : {words : {$each : [ "他", "他", "他" ]}}}, true)

 

 查看结果:

> db.search_loggers.find()
{ "_id" : ObjectId("4f90be7a09ee78ef9db6e01c"), "user_id" : 2, "words" : [1, 2, "me", "他" ] }

 还是没问题,但如果先插入中文:

> db.search_loggers.update({user_id : 3}, {$addToSet : {words : {$each : [ "他", "他", "他", 1, 2, 3, "me", "me"]}}}, true)

 查看结果:

> db.search_loggers.find()
{ "_id" : ObjectId("4f90c47609ee78ef9db6e01d"), "user_id" : 3, "words" : [ "他", "他", "他", 1, 2, 3, "me", "me" ] }
 悲剧了,没有进行深入的学习,但觉得这是个bug,如有了解的,给解释一下,感激不尽!
分享到:
评论
1 楼 cwsdnsdws 2016-06-26  
我试验了一下,针对中文也是可以实现元素唯一的啊,难道是数据库版本不同导致实验结果不同?我使用的时3.2.7版本的Mongodb

相关推荐

    MongoDB的$type操作符.pdf

    在MongoDB中,查询数据时,我们可能会遇到需要根据数据类型进行筛选的情况,这时就用到了$type操作符。$type操作符允许我们基于BSON(Binary JSON)类型来查询文档中的字段,确保返回的结果符合特定的数据类型。 ...

    Spring Data MongoDB中文文档

    ### Spring Data MongoDB中文文档知识点概览 #### 一、Spring Data MongoDB概述 - **Spring Data MongoDB** 是 **Spring Data** 家族的一员,它提供了一种简单的方式来与 MongoDB 数据库进行交互。通过 Spring Data...

    mongoDB的官方中文文档

    在学习过程中,通过阅读中文文档和运行示例,可以加深对MongoDB的理解,掌握其基本操作和高级特性。对于初学者,建议从安装开始,逐步学习数据插入、查询、更新和删除,然后探索索引、聚合、事务等进阶主题。随着对...

    spring mongodb 中文文档

    **Spring MongoDB 中文文档** MongoDB 是一个高性能、开源、无模式的分布式文档数据库,而Spring Data MongoDB 是Spring 框架的一部分,它为MongoDB 提供了强大的支持,简化了与MongoDB 的集成和操作。这篇文档将...

    MongoDB and Python Patterns and processes

    - **系统需求**:首先确保你的操作系统支持MongoDB。对于Windows、Linux或macOS,MongoDB均有官方发行版。 - **下载与安装**:访问MongoDB官网下载适合你操作系统的版本,并按照官方指南完成安装过程。 ##### 2. ...

    gomongoschema:此软件包包含帮助程序(或任何您称呼的)以处理MongoDB的$ jsonSchema验证消息

    该程序包包含用于处理MongoDB的$jsonSchema验证消息的助手(或任何您称呼的助手)。 截止到今天( 2020-03-10 ),当文档无法插入或更新时,它不支持适当的错误消息。 此问题将通过解决。 但是,如果一切顺利,它...

    使用aggregate在MongoDB中查询重复数据记录的方法

    在MongoDB中,`db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)`命令用于对特定集合执行一系列聚合管道操作。每个操作(pipe)通常接收上一步的输出作为输入,并产生新的输出,直到最后一个操作返回最终结果。 ...

    MongoDB参考手册.zip_MongoDB_T6U_mongodb中文手册

    MongoDB中文手册是开发者必备的参考资料,它详细介绍了MongoDB的各种操作和语法用法,帮助用户深入理解并有效利用这个强大的数据库系统。 手册首先会介绍MongoDB的基本概念,包括文档(Documents)、集合...

    NoSQLBooster for MongoDB

    8. **多语言支持**:NoSQLBooster界面支持多种语言,包括中文,使得非英语国家的用户也能无障碍地使用。 9. **实时统计**:实时监控MongoDB服务器的性能指标,如内存使用、CPU占用、网络流量等,帮助用户及时发现和...

    mongodb学习笔记

    `$addToSet` 修改器用于数组类型的键值对,例如 `{ $addToSet : { books: "JS" } }`。 RunCommand 函数和 FindAndModify 函数 `runCommand` 函数可以执行 MongoDB 中的特殊函数,例如 `findAndModify` 函数用于...

    MongoDB 3.6 中文文档

    MongoDB 3.6 中文文档

    MongoDB期末考试测试题

    使用`$addToSet`可向已有数组中添加元素,确保元素不重复。 10. 删除操作: `remove`方法用于删除满足条件的文档,例如删除所有专业为“通信工程”的学生。 11. MapReduce: MapReduce是一种处理和生成大数据集...

    MongoDB The Definitive Guide 2011 中文+英文

    MongoDB: The Definitive Guide by Kristina Chodorow and Michael Dirolf Copyright © 2010 Kristina Chodorow and Michael Dirolf. All rights reserved.

    NoSQL Manager for MongoDB中文版(免安装).zip

    总之,NoSQL Manager for MongoDB中文版是MongoDB管理员和开发者的得力助手,它以用户友好的界面和全面的功能,降低了MongoDB的管理和使用难度,提高了工作效率。无论是在日常开发、数据维护还是学习研究中,都是一...

    MongoDB 中聚合统计计算–$SUM表达式

    因为MongoDB的文档有数组字段,所以可以简单的将计算总和分成两种: 1,统计符合条件的所有文档的某个字段的总和; 2,统计每个文档的数组字段里面的各个数据值的和。这两种情况都可以通过$sum表达式来完成。 以上两...

    MongoDB中多表关联查询($lookup)的深入讲解

    MongoDB的多表关联查询是数据库操作中的重要环节,尤其是在处理复杂数据关联时显得尤为重要。在NoSQL数据库中,由于缺乏传统SQL的JOIN操作,关联查询通常更为复杂。MongoDB引入了聚合框架,其中的$lookup操作符解决...

    MongoDB聚合操作详细步骤.pdf

    常用的聚合函数包括$sum(求和)、$avg(平均值)、$min(最小值)、$max(最大值)、$push(把分组的值添加到数组中)、$addToSet(添加到数组中但去除重复值)、$first和$last(获取排序后的第一个和最后一个文档...

Global site tag (gtag.js) - Google Analytics