MongoDB中常用的find
接着前一篇文章,下面主要介绍一下MongoDB中常用的find操作。
先打开MongoDB shell,通过下面一组命令插入一些数据。
post1 = {"title":"learn MongoDB", "author":"Wilber", "date":new Date(), "score":}
post2 = {"title":"learn English", "author":"Will", "date":new Date(), "score":}
post3 = {"title":"learn C#", "author":"Li", "date":new Date(), "score":}
post4 = {"title":"learn SQL", "author":"July", "date":new Date(), "score":}
post5 = {"title":"learn Node", "author":"Wilber", "date":new Date(), "score":}
db.blog.posts.insert(post1)
db.blog.posts.insert(post2)
db.blog.posts.insert(post3)
db.blog.posts.insert(post4)
db.blog.posts.insert(post5) users1 = ["Wilber", "Will", "June"]
users2 = ["Will", "July", "Wilber"]
users3 = ["James", "Jack", "Will"]
db.blog.users.insert({"users":users1})
db.blog.users.insert({"users":users2})
db.blog.users.insert({"users":users3})
find(arg1,arg2)简介
find查询会返回一个Collection中文档的子集。关于find的两个参数,arg1表示匹配条件,arg2可以指定要返回的键。
直接上例子,对于arg2,可以通过设置值为0,来控制那些键不要显示
> db.blog.posts.find({"author":"Will"})
{ "_id" : ObjectId("5479c9f2421b7f1536cfb208"), "title" : "learn English", "author" : "Will", "date" : ISODate("2014-11-
29T13::.959Z"), "score" : 95 }
> db.blog.posts.find({}, {"title":, "score":})
{ "_id" : ObjectId("5479c9f2421b7f1536cfb207"), "title" : "learn MongoDB", "score" : }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb208"), "title" : "learn English", "score" : }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb209"), "title" : "learn C#", "score" : }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb20a"), "title" : "learn SQL", "score" : }
{ "_id" : ObjectId("5479c9f4421b7f1536cfb20b"), "title" : "learn Node", "score" : }
> db.blog.posts.find({}, {"date": })
{ "_id" : ObjectId("5479c9f2421b7f1536cfb207"), "title" : "learn MongoDB", "author" : "Wilber", "score" : }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb208"), "title" : "learn English", "author" : "Will", "score" : }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb209"), "title" : "learn C#", "author" : "Li", "score" : }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb20a"), "title" : "learn SQL", "author" : "July", "score" : }
{ "_id" : ObjectId("5479c9f4421b7f1536cfb20b"), "title" : "learn Node", "author" : "Wilber", "score" : }
常用查询条件
比较条件:$gt,$gte,$lt,$lte,$ne
> db.blog.posts.find({"score":{"$gte":,"$lt":}})
{ "_id" : ObjectId("5479c9f2421b7f1536cfb207"), "title" : "learn MongoDB", "author" : "Wilber", "date" : ISODate("2014-1
-29T13::.939Z"), "score" : 90 }
{ "_id" : ObjectId("5479c9f4421b7f1536cfb20b"), "title" : "learn Node", "author" : "Wilber", "date" : ISODate("2014-11-2
9T13::.999Z"), "score" : 93 }
> db.blog.posts.find({"author":{"$ne":"July"}})
{ "_id" : ObjectId("5479c9f2421b7f1536cfb207"), "title" : "learn MongoDB", "author" : "Wilber", "date" : ISODate("2014-1
-29T13::.939Z"), "score" : 90 }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb208"), "title" : "learn English", "author" : "Will", "date" : ISODate("2014-11-
29T13::.959Z"), "score" : 95 }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb209"), "title" : "learn C#", "author" : "Li", "date" : ISODate("2014-11-29T13:2
:.979Z"), "score" : 80 }
{ "_id" : ObjectId("5479c9f4421b7f1536cfb20b"), "title" : "learn Node", "author" : "Wilber", "date" : ISODate("2014-11-2
9T13::.999Z"), "score" : 93 }
>
包含条件:$in,$nin
> db.blog.posts.find({"author":{"$in":["Wilber","Will"]}})
{ "_id" : ObjectId("5479c9f2421b7f1536cfb207"), "title" : "learn MongoDB", "author" : "Wilber", "date" : ISODate("2014-1
-29T13::.939Z"), "score" : 90 }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb208"), "title" : "learn English", "author" : "Will", "date" : ISODate("2014-11-
29T13::.959Z"), "score" : 95 }
{ "_id" : ObjectId("5479c9f4421b7f1536cfb20b"), "title" : "learn Node", "author" : "Wilber", "date" : ISODate("2014-11-2
9T13::.999Z"), "score" : 93 }
> db.blog.posts.find({"author":{"$nin":["Wilber","Will"]}})
{ "_id" : ObjectId("5479c9f2421b7f1536cfb209"), "title" : "learn C#", "author" : "Li", "date" : ISODate("2014-11-29T13:2
:.979Z"), "score" : 80 }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb20a"), "title" : "learn SQL", "author" : "July", "date" : ISODate("2014-11-29T1
::.989Z"), "score" : 70 }
>
或操作:$or
> db.blog.posts.find({"$or":[{"author":"Wilber"}, {"score":{"$gt":}}]})
{ "_id" : ObjectId("5479c9f2421b7f1536cfb207"), "title" : "learn MongoDB", "author" : "Wilber", "date" : ISODate("2014-1
-29T13::.939Z"), "score" : 90 }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb208"), "title" : "learn English", "author" : "Will", "date" : ISODate("2014-11-
29T13::.959Z"), "score" : 95 }
{ "_id" : ObjectId("5479c9f4421b7f1536cfb20b"), "title" : "learn Node", "author" : "Wilber", "date" : ISODate("2014-11-2
9T13::.999Z"), "score" : 93 }
>
limit(),skip(),sort()
> db.blog.posts.find().limit()
{ "_id" : ObjectId("5479c9f2421b7f1536cfb207"), "title" : "learn MongoDB", "author" : "Wilber", "date" : ISODate("2014-1
-29T13::.939Z"), "score" : 90 }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb208"), "title" : "learn English", "author" : "Will", "date" : ISODate("2014-11-
29T13::.959Z"), "score" : 95 }
> db.blog.posts.find().skip()
{ "_id" : ObjectId("5479c9f2421b7f1536cfb208"), "title" : "learn English", "author" : "Will", "date" : ISODate("2014-11-
29T13::.959Z"), "score" : 95 }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb209"), "title" : "learn C#", "author" : "Li", "date" : ISODate("2014-11-29T13:2
:.979Z"), "score" : 80 }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb20a"), "title" : "learn SQL", "author" : "July", "date" : ISODate("2014-11-29T1
::.989Z"), "score" : 70 }
{ "_id" : ObjectId("5479c9f4421b7f1536cfb20b"), "title" : "learn Node", "author" : "Wilber", "date" : ISODate("2014-11-2
9T13::.999Z"), "score" : 93 }
> db.blog.posts.find().sort({"athor":,"score":-})
{ "_id" : ObjectId("5479c9f2421b7f1536cfb208"), "title" : "learn English", "author" : "Will", "date" : ISODate("2014-11-
29T13::.959Z"), "score" : 95 }
{ "_id" : ObjectId("5479c9f4421b7f1536cfb20b"), "title" : "learn Node", "author" : "Wilber", "date" : ISODate("2014-11-2
9T13::.999Z"), "score" : 93 }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb207"), "title" : "learn MongoDB", "author" : "Wilber", "date" : ISODate("2014-1
-29T13::.939Z"), "score" : 90 }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb209"), "title" : "learn C#", "author" : "Li", "date" : ISODate("2014-11-29T13:2
:.979Z"), "score" : 80 }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb20a"), "title" : "learn SQL", "author" : "July", "date" : ISODate("2014-11-29T1
::.989Z"), "score" : 70 }
>
数组的查询
- $all:通过多个元素匹配数组
- 支持“键.下标”方式的匹配
- 支持$size的方式匹配
> db.blog.users.find({"users":"Will"})
{ "_id" : ObjectId("5479d03d421b7f1536cfb20c"), "users" : [ "Wilber", "Will", "June" ] }
{ "_id" : ObjectId("5479d03d421b7f1536cfb20d"), "users" : [ "Will", "July", "Wilber" ] }
{ "_id" : ObjectId("5479d03d421b7f1536cfb20e"), "users" : [ "James", "Jack", "Will" ] }
> db.blog.users.find({"users": {"$all": ["Wilber", "Will"]}})
{ "_id" : ObjectId("5479d03d421b7f1536cfb20c"), "users" : [ "Wilber", "Will", "June" ] }
{ "_id" : ObjectId("5479d03d421b7f1536cfb20d"), "users" : [ "Will", "July", "Wilber" ] }
> db.blog.users.find({"users": ["Wilber", "Will"]})
> db.blog.users.find({"users.2":"Will"})
{ "_id" : ObjectId("5479d03d421b7f1536cfb20e"), "users" : [ "James", "Jack", "Will" ] }
> db.blog.users.find({"users":{"$size":}})
{ "_id" : ObjectId("5479d03d421b7f1536cfb20c"), "users" : [ "Wilber", "Will", "June" ] }
{ "_id" : ObjectId("5479d03d421b7f1536cfb20d"), "users" : [ "Will", "July", "Wilber" ] }
{ "_id" : ObjectId("5479d03d421b7f1536cfb20e"), "users" : [ "James", "Jack", "Will" ] }
>
null的含义
> post5.z = null
null
> db.blog.posts.update({"title":"learn Node"}, post5)
> db.blog.posts.find({"z":null})
{ "_id" : ObjectId("5479c9f2421b7f1536cfb207"), "title" : "learn MongoDB", "author" : "Wilber", "date" : ISODate("2014-1
-29T13::.939Z"), "score" : 90 }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb208"), "title" : "learn English", "author" : "Will", "date" : ISODate("2014-11-
29T13::.959Z"), "score" : 95 }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb209"), "title" : "learn C#", "author" : "Li", "date" : ISODate("2014-11-29T13:2
:.979Z"), "score" : 80 }
{ "_id" : ObjectId("5479c9f2421b7f1536cfb20a"), "title" : "learn SQL", "author" : "July", "date" : ISODate("2014-11-29T1
::.989Z"), "score" : 70 }
{ "_id" : ObjectId("5479c9f4421b7f1536cfb20b"), "title" : "learn Node", "author" : "Wilber", "date" : ISODate("2014-11-2
9T13::.999Z"), "score" : 93, "z" : null }
> db.blog.posts.find({"z":{"$in":[null], "$exists": true}})
{ "_id" : ObjectId("5479c9f4421b7f1536cfb20b"), "title" : "learn Node", "author" : "Wilber", "date" : ISODate("2014-11-2
9T13::.999Z"), "score" : 93, "z" : null }
>
Ps:可以通过以下链接的到例子中的shell命令。
http://files.cnblogs.com/wilber2013/find.js
MongoDB中常用的find的更多相关文章
- mongoDB的常用语法
安装: 到mongodb官网下载安装包或者压缩包:https://www.mongodb.com/download-center?jmp=nav 1.如果是msi包的话则点击按步骤安装,如果是压缩包的 ...
- 在MongoDB中实现聚合函数 (转)
随着组织产生的数据爆炸性增长,从GB到TB,从TB到PB,传统的数据库已经无法通过垂直扩展来管理如此之大数据.传统方法存储和处理数据的成本将会随着数据量增长而显著增加.这使得很多组织都在寻找一种经济的 ...
- mongodb的常用操作
对于nosql之前工作中有用到bekerlydb,最近开始了解mongodb,先简单写下mongodb的一些常用操作,当是个总结: 1.mongodb使用数据库(database)和集合(collec ...
- MongoDB实战指南(五):MongoDB中的聚集分析
聚集操作是对数据进行分析的有效手段.MongoDB主要提供了三种对数据进行分析计算的方式:管道模式聚集分析,MapReduce聚集分析,简单函数和命令的聚集分析. 1. 管道模式进行聚集 这里所说的管 ...
- MongoDB中的分组
一.MongoDB中的Count函数.Distinct函数以及分组 准备工作,插入一个班级的文档 > for(var i=0;i<10;i++){ ... db.Classes.inser ...
- 使用highcharts显示mongodb中的数据
1.mongodb数据表相关 # 显示数据库 show dbs # 数据库 use ceshi # 显示表 show tables # 创建集合 db.createCollection('infoB' ...
- 【mongodb系统学习之八】mongodb shell常用操作
八.mongodb shell常用基础操作(每个语句后可以加分号,也可以不加,看情况定(有的工具中可以不加),最好是加): 1).进入shell操作界面:mongo,上边已有演示: 2).查看当前使 ...
- Mongodb中 Documents文档说明
mongodb使用BSON格式存储数据记录. 如下图: 文档结构 文档有键值对组成, 有以下结构: { field1: value1, field2: value2, ... ...
- MongoDB的常用命令和增查改删
数据库操作 Mongodb MySQL 查询库 show databases | show dbs show databases 选中库 use databaseName use databaseNa ...
随机推荐
- radio切换,点击方法onclick
<label><input name="Status1" type="radio" value="first" check ...
- Android学习之发送及接收广播
1.使用标准广播 1.1 定义广播接收器 public class MyBroadcastReceiver extends BroadcastReceiver { @Override public v ...
- 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
题目描述 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出. 输入描述: 先输入键值对的个数然后输入成对的index和value值 ...
- android AlertDialog.Builder
AlertDialog的构造方法全部是Protected的,所以不能直接通过new一个AlertDialog来创建出一个AlertDialog. 要创建一个AlertDialog,就要用到AlertD ...
- 取消excel 工作保护 密码的宏
Option Explicit Public Sub AllInternalPasswords() ' Breaks worksheet and workbook structure password ...
- e790. 设置JSpinner的边框
// Create a number spinner JSpinner spinner = new JSpinner(); // Get the text field JFormattedTextFi ...
- (转)解决Win7/8硬盘占用高方案汇总
写在前面 在Windows7时代,很少人会抱怨硬盘占用率高的问题.但是到了Windows7/8.1时,硬盘占用率成为一个扰人的问题.硬盘占用率经常100%会导致系统卡.慢,而且也很伤硬 ...
- 转载: 让我们聊聊Erlang的nif中资源的安全释放
让我们聊聊Erlang的nif中资源的安全释放 http://my.oschina.net/u/236698/blog/479221
- python的sciter库Pysciter安装教程(win32 + win64)
Pysciter是一个结合HTML与Python编写桌面软件个三方库 注:无论是32位还是64位电脑,建议安装32位的sciter,这样写出来的软件可以在win32和win64电脑上都可以运行(前提p ...
- spring mvc实现自定义注解
实现方式:使用@Aspect实现: 1. 新建注解接口:CheckSign package com.soeasy.web.utils; import org.springframework.core. ...