看以下的文档:
Collection : domain { "_id" : 1001, "domainName" : "google.com" "tag" : [ "search engine", "search", "find anything", "giant" ] }, { "_id" : 1002, "domainName" : "yahoo.com" "tag" : [ "search engine", "online portal", ] }, { "_id" : 1003, "domainName" : "amazon.com" }
1.问题
应该怎么查找“tag”值大于3的所有文档
组合使用$size和$gt两个函数
db.domain.find( { tag: {$size: {$gt:3} } } ); null
虽然执行没有错误,但是返回结果是null,也就是说这样来实现是不对的。
试试$where操作符
db.domain.find( {$where:'this.tag.length>3'} ) MongoDB v 2.2.3 uncaught exception: error { "$err" : "error on invocation of $where function:\nJS Error: TypeError: this.tag has no properties nofile_a:0", "code" : 10071 } or MongoDB v 2.4.5 JavaScript execution failed: error: { "$err" : "JavaScript execution failed: TypeError: Cannot read property 'length' of undefined near '' ", "code" : 16722 } at src/mongo/shell/query.js:L128 >
看起来这样也不管用?
2.方案
其实$where操作符是管用的,只是不是所有的文档中都有”tag“这个字段,结果导致了”no properties“异常。
2.1 组合使用$exists和$where操作符
db.domain.find( {tag : {$exists:true}, $where:'this.tag.length>3'} ) { "_id" : 1001, "domainName" : "google.com" "tag" : [ "search engine", "search", "find anything", "giant" ] }
相关推荐
- 大于等于:`db.userInfo.find({"age":{"$gte":25}})` —— 查找 age 大于等于 25 的文档。 - 小于等于:`db.userInfo.find({"age":{"$lte":25}})` —— 查找 age 小于等于 25 的文档。 - 多条件:`db.userInfo....
对于存储大于 BSON 文档大小限制(16MB)的文件,MongoDB 提供了 GridFS,一种用于存储和检索大文件的规范。GridFS 将文件拆分为多个小块存储,确保数据的安全和完整性。 ##### 8. 安全性 MongoDB 提供了多层次的...
- 例如,查找嵌入文档`address`中的`city`字段为"New York"的文档: ```javascript > db.test.find({"address.city": "New York"}) ``` 以上就是MongoDB教程中关于查询操作的基本实例和技巧。通过熟练掌握这些...
- 条件运算符:如$ne(不等于)、$in(在列表中)、$nin(不在列表中)、$mod(取模)、$all(所有)、$size(大小)、$exists(存在)、$type(类型)等,以及比较运算符如$lt(小于)、$lte(小于等于)、$gt(大于)、$gte(大于等于)。...
2. **`show dbs`**:展示当前连接中所有的数据库列表。 3. **`db`**:显示当前所选的数据库名称。 4. **`db.APP_HANSON.insert({“name”:”hanson”})`**:向数据库中插入一条记录。这里以 `APP_HANSON` 集合为例...
- 例如,查询`{xxx:{$gt:100}},{xxx:{$lt:9.95}}`表示查找`xxx`字段值大于100或小于9.95的文档。 以上就是根据给定的文件信息整理出来的MongoDB关键知识点。这些知识点覆盖了从安装配置到数据操作等多个方面,对于...
MongoDB是一种流行的开源、分布式文档数据库系统,以其灵活性、高性能和易用性而备受青睐。在本文中,我们将深入探讨MongoDB的文件上传与下载功能,以及如何在实际操作中利用这些特性进行数据存储。 首先,MongoDB...
MongoDB 是一种流行的开源文档型数据库,以其强大的查询语言、高性能和灵活性著称。它支持类似于面向对象的查询语法,可以处理大规模数据并提供比传统关系数据库如MySQL更高的查询效率。在MongoDB中,常见的操作包括...
例如,查找age字段大于25且小于40的文档,并且只返回name字段。 - 更新操作:使用update方法可以更新符合条件的文档。例如,可以更新age为22的文档,将name字段更新为"demoxixi"。 需要注意的是,在使用PHP进行...
例如,插入一个包含姓名和年龄的文档: ```javascript db.users.insert({name: "John Doe", age: 30}); ``` #### 批量插入 对于批量插入,虽然mongo shell不直接支持,但可以通过编写循环或使用语言驱动程序(如...
例如,要查找`field`字段值大于`value`的文档,可以使用`db.collection.find({ "field" : { $gt: value } })`。同样,可以组合使用这些操作符来构造更复杂的查询,如`db.collection.find({ "field" : { $gt: value1,...
假设我们有一个`tags`字段,是一个包含字符串的数组,想要找到所有包含"mongodb"和"query"标签的文档: ```javascript db.documents.find({ tags: { $all: ["mongodb", "query"] } }) ``` 在MongoDB中插入数组或...
例如,查找所有年龄大于25岁的用户: ```java FindIterable<Document> iterable = collection.find(new Document("age", new Document("$gt", 25))); for (Document result : iterable) { System.out.println...
MongoDB 是一个基于分布式文件存储的文档数据库,它支持 JSON 样式的文档,具有灵活的数据模型,适合处理大量数据。GridFS 是 MongoDB 提供的一种存储和检索大于 16MB 文件的解决方案,它将文件分成多个“块”存储,...
除此之外,MongoDB的QueryOperators提供了许多其他高级查询功能,如`$gt`(大于)、`$lt`(小于)、`$in`(在列表中)、`$elemMatch`(匹配数组中的元素)等。例如,如果你想找到年龄大于20岁的用户,可以这样写: ...