`

【转】mongodb中删除数组内嵌对象文档

 
阅读更多

这个问题在做数据结构的时候经常用到,刚开始没怎么留意,因为我的数组都只是单元素文档:只有一个ObjectId,这样用pull操作完全没有问题,但后来用对象作为了数据的内容,就是数组内嵌的对象,这时候用pull就是各种不生效。发现Mongodb对数组内对象的get和pull使用的书写格式不一致。下面我列出可以使用的书写方式:

先列出mongodb的数据结构

{
  "_id" : ObjectId,
  "Uid" : ObjectId,
  "Visit" : Visit[16]
}


其中Visit为对象:

///访客id
ObjectId  VId;
///访问时间
DateTime Time;

则删除数组内某个Vid的写法为(我的客户端是:samus):

MongoDbHelper.Update<FriendTopicVisit>("FriendTopicVisit", new Document("$pull", new Document("Visit",new Document("Vid",visit.Vid))), new Document("_id", id));

 

方法不复杂,但不知道方法再去找方法也确实挺费时间的。

 

转自 http://www.cnblogs.com/spnt/archive/2013/02/25/2932120.html

分享到:
评论

相关推荐

    MongoDB如何对数组中的元素进行查询详解

    MongoDB 是一种流行的文档型数据库,它支持存储复杂的文档结构,包括内嵌文档和数组。在处理数组元素的查询时,MongoDB 提供了两种主要的方法来根据数组子元素进行匹配。这两种方法的区别在于匹配的主体不同,适用于...

    MongoDB学习笔记

    MongoDB支持多种数据类型,包括字符串、数字、日期、数组和内嵌文档等。日期类型可以使用JavaScript的Date对象表示,数组可以包含多个值,而内嵌文档则是将整个文档作为另一个文档的键值。这些数据类型的灵活性使得...

    MongoDB中集合、文档、数据库相关概念.pptx

    内嵌文档是将相关数据嵌入到同一个文档中,而引用文档则是通过引用其他文档的ID来关联数据,这两种方式都提供了处理复杂数据关系的方法,但需要根据具体需求和数据模型进行选择。 总结来说,MongoDB提供了一种灵活...

    NoSQL主流数据库-MongoDB.pptx

    MongoDB 支持多种数据类型,包括布尔值、整数、浮点数、字符串、对象 ID、日期、时间戳、数组和内嵌文档等。 MongoDB 的写操作包括插入、更新和删除三个操作。插入操作可以使用 insert 语句将数据插入到数据库中,...

    MongoDB数据库设计.pptx

    对于一对少量关系(如一个人有多个地址),内嵌文档是理想的,可以直接在主体文档中嵌入子文档。例如,在个人文档中可以包含一个addresses数组,存储多个地址信息。 对于一对多关系但数量较多的情况(如产品与零件...

    mongodb.pdf

    内嵌文档则是文档中可以嵌套其他文档的特性,这允许数据结构自然地反映现实世界中对象的关系,例如一篇博客文章可能会包含多个标签信息,每个标签本身也是一个文档。 由于MongoDB的这些特性,它特别适合以下几种...

    Centos7下安装MongoDB

    6. 丰富的查询:支持丰富的查询表达方式,查询指令使用JSON形式的标记,可轻易查询文档中的内嵌的对象及数组。 7. 快速就地更新:查询优化器会分析查询表达式,并生成一个高效的查询计划。 8. 高效的传统存储方式:...

    MongoDB基本操作指南

    这种设计鼓励数据的嵌套,减少了查询的复杂性,例如在图2所示的例子中,作品和评论可以被设计为一个集合,评论作为子文档内嵌在art的comments属性中,评论的回复则作为comment子文档的子文档。这种数据模型允许一次...

    MongoDB中文档的更新操作示例详解

    在MongoDB中,文档是数据存储的基本单位,类似于关系型数据库中的行。本篇文章将深入探讨MongoDB中文档的更新操作,包括如何替换文档、处理多条匹配记录的更新以及使用修改器进行细粒度的字段更新。 首先,文档替换...

    mongodb 学习文档

    - 动态查询:支持基于文档、属性、内嵌文档和数组的复杂查询。 - 全面索引:可对内部对象和内嵌数组进行索引。 - 大对象存储:高效处理大型二进制数据如图片和视频。 - 复制与故障切换:通过复制集实现数据冗余,...

    Mongodb入门教程、示例+Spring Boot完整示例+聚合.docx

    查询指令使用 JSON 形式的标记,可轻易查询文档中内嵌的对象及数组。 6. MongoDB 使用 update() 命令可以实现替换完成的文档(数据)或者一些指定的数据字段。 7. Mongodb 中的 Map/reduce 主要是用来对数据进行批量...

    mongodb学习手册.pdf

    数据在MongoDB中以单文档为单位存储,文档可以包含基本类型属性、内嵌文档或文档数组,这些文档对象支持复杂关系的表达。存储的数据格式是BSON,即“二进制序列化文档表示法”,这种格式与JSON类似,但它是二进制的...

    MongoDB 使用手册-中文版.docx

    - **动态查询**:支持丰富的查询表达式,使用JSON形式的标记,能够轻松地查询文档中的内嵌对象及数组。 - **全索引支持**:包括文档内嵌对象及数组的索引,查询优化器能够分析查询表达式并生成高效的查询方案。 - **...

    MongoDb数据结构详解.pdf

    - 内嵌文档 - 最大值 - 最小值 - 未定义类型 4. **_id字段**:每条插入MongoDB的文档都会自动分配一个唯一的`_id`字段,通常由一个ObjectId类型的数据构成。ObjectId由四个部分组成:4字节的时间戳(从1970年1...

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

    MongoDB的文档类似于JSON,JSON只是一种简单的表示数据的方式,只包含了6种数据类型(null、布尔、数字、字符串、数组及对象). JSON的数据类型的局限性: 1.无日期类型,对日期型的处理较为繁琐 2.无法区分浮点数和...

    mongodb-win32-x86_64-2008plus-ssl-v3.4-latest-signed.msi

    查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。 MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。 Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合...

    MongoDB知识点学习手册

    3. **数据结构灵活**:文档可以由基本类型属性、内嵌文档或文档数组组成,这种灵活性使得 MongoDB 能够适应各种不同类型的数据存储需求。 4. **数据格式**:MongoDB 使用 key-value 对的集合形式存储数据,其中键为...

    MongoDB思维导图

    键可以是Unicode字符、数字,值可以是各种数据类型,包括数值、字符串、数组、内嵌文档等。 4. **索引(Index)**: - 索引可提高查询性能。MongoDB支持多种类型的索引,如单字段索引、复合索引、唯一索引等。创建...

    mongodb-meetup-schema-design

    - **内嵌文档**:对于紧密相关且经常一起访问的数据,可以考虑使用内嵌文档的方式,这可以避免多个集合之间的查询。 - **引用**:如果数据之间存在较松散的关系或者单个文档过大时,可以采用引用的方式来连接不同的...

Global site tag (gtag.js) - Google Analytics