-
一个mongodb的变态问题0
数据库的一条数据:
{
"_id" : ObjectId("4fd5af76b9ac507e96276f23"),
"comments" : [
{
"author" : "joe",
"score" : 3
},
{
"author" : "mary",
"score" : 6
}
]
}
现想查询出author:'joe'的这条数据。用下边语句
> db.test.find({"comments": {"$elemMatch": {"author":"joe"}}}
返回结果:
{ "_id" : ObjectId("4fd5af76b9ac507e96276f23"), "comments" : [ { "author" : "joe", "score" : 3 }, { "author" : "mary", "score" : 6 } ] }
问题:
查询结果里这条数据:{ "author" : "mary", "score" : 6 }出出来了,现在只想要下边这样的结果可以实现吗?
{ "_id" : ObjectId("4fd5af76b9ac507e96276f23"), "comments" : [ { "author" : "joe", "score" : 3 }]}
问题补充:深知不合逻辑,但又不想做其他处理,故来此请教高手,望有解决之道,用以提高。万分感谢。。万分感谢 ~~2014年6月12日 13:34
2个答案 按时间排序 按投票排序
-
mongodb里面查询的结果是返回整条完整的数据,而不是一半数据。
所以你查询的结果,也是返回整条数据,包括你认为无用的那部分数据。
如果数据量巨大,schema这样设计是有缺陷的。你可以分document来存放数据。2014年6月24日 17:35
-
这个直接查询是无法达到你的效果的。
db.test.find({"comments": {"$elemMatch": {"author":"joe"}}}.forEach(function(x){
//进行操作
})
你这样查询效率不高
db.test.find({"comments.author":"joe"}}就可以查询了。不需要$elemMatch2014年6月14日 10:25
相关推荐
MongoDB 是一个文件数据库,其他 Linux 系统下安装也是类似的。 知识点 1:下载 MongoDB 在安装 MongoDB 之前,需要下载 MongoDB 的安装包。下载地址为 ...
MongoDB是一种流行的开源、分布式文档...总的来说,“mongodb-测试数据”这个压缩包为MongoDB的学习和测试提供了一个宝贵的资源库。通过深入研究和操作这些数据,你可以增强对MongoDB的理解,提升数据库管理技能。
MongoDB 是一个流行的开源、基于分布式文件存储的数据库系统,主要设计用于处理大量数据的分布式环境。C# 驱动是 MongoDB 提供的一种客户端库,允许 .NET 开发者与 MongoDB 数据库进行交互。标题提到的是 MongoDB 的...
基于node封装的一个MongoDB操作类库 包括增删改查 分页查询 批量操作 采用单例模式大大提高性能 使用时需新建一个config.js配置数据库地址 数据库名称 const Config ={ url:'数据库地址', dbName:'数据库' } ...
MongoDB中的每一行记录就是一个文档,它是一个由键值对构成的数据结构,MongoDB文档与JSON对象类似。键的值可以包含其他的文档、数组、文档数组。 MongoDB的主要特点包括: 1. 高性能:MongoDB使用了高性能的存储...
资源名称:MongoDB应用设计模式内容简介:无论是在构建社交媒体网站,还是在开发一个仅在内部使用的企业应用程序,《MongoDB应用设计模式》展示了MongoDB需要解决的商业问题之间的连接。你将学到如何把MongoDB设计...
MongoDB 是一个流行的开源、高性能、无模式的文档型数据库,常用于构建现代Web应用程序。在C#开发环境中,MongoDB 提供了丰富的驱动程序,使得开发者能够方便地与数据库进行交互。本压缩包中的“基于c#的Mongodb帮助...
MongoDB是一个开源、分布式、高性能的NoSQL数据库,以其灵活性、可扩展性和高可用性而闻名。`mongodb.dll`是MongoDB数据库系统在Windows平台上运行所必需的一个动态链接库(DLL)文件,它包含了MongoDB客户端和...
在整合过程中,可能会遇到的一个问题是原生MongoDB PHP库与TP6的ORM机制不完全兼容。例如,MongoDB的查询语法与SQL有很大差异,TP6的查询构造器无法完全覆盖所有MongoDB的特性。这时,我们需要利用MongoDB PHP库提供...
默认情况下,MongoDB会安装在`C:\Program Files\MongoDB`目录下,并创建一个数据存储目录`data\db`。 2. **配置MongoDB** - 配置文件:MongoDB的配置文件是`mongod.cfg`,通常位于`C:\Program Files\MongoDB\...
MongoDB是一个流行的开源、分布式文档型数据库,设计用于处理大量数据并提供高可用性和高性能。在Java应用程序中,为了与MongoDB进行交互,我们需要使用Java MongoDB驱动程序。这个压缩包包含的就是Java连接MongoDB...
Spring Data MongoDB是一个强大的Java库,它为开发人员提供了一种简单的方式来访问和操作MongoDB数据库。这个库是Spring Data框架的一部分,旨在简化数据访问层的实现,尤其在使用NoSQL数据库如MongoDB时。MongoDB...
一、安装 MongoDB 首先,我们需要配置 MongoDB 的 yum 源,创建 yum 源文件 `/etc/yum.repos.d/mongodb-org-3.4.repo`,添加以下内容: ``` [mongodb-org-3.4] name=MongoDB Repository baseurl=...
MongoDB是一个基于分布式文件存储的NoSQL数据库,由C++语言编写,运行稳定,性能高旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB的特点包括: 1. 模式自由:可以把不同结构的文档存储在同一个...
此“mongodb7.0.0安装包”是针对Windows 64位操作系统的一个版本,适用于需要在Windows环境中部署MongoDB服务的用户。 在安装MongoDB 7.0.0之前,你需要确保你的计算机满足以下硬件和软件要求: 1. 操作系统:...
MongoDB 是一个高性能、分布式、开源的文档型数据库系统,被广泛应用于Web应用程序、移动应用后端、大数据分析以及物联网(IoT)等场景。它以其灵活的数据模型、高可用性和可扩展性著称,是NoSQL数据库领域的代表之一...
Compass是MongoDB的官方图形界面工具,它提供了一个用户友好的界面,用于可视化数据库和集合,帮助开发者和管理员进行数据探索、查询构建、性能分析以及基本的数据库管理。通过Compass,用户可以轻松地浏览和操作...
其次,需要创建一个数据存储,用于存储MongoDB矢量数据。Geoserver提供了强大的数据存储功能,能够存储大量的矢量数据。 3. 发布地图服务 最后,需要发布地图服务,将MongoDB矢量数据发布为地图服务。Geoserver...
本课程是一套关于MongoDB应用开发的实战性教程,名为《深入浅出MongoDB应用实战开发(基础、开发指南、系统管理、集群及系统架构)》,教程侧重于讲解MongoDB的常用特性及高级特性,从实际开发的角度出发对MongoDB...