2017-11-17-笔记2-mongoDB
来源:互联网 发布:linux安装ssh命令 编辑:程序博客网 时间:2024/06/09 19:34
1. ObjectId()与save()函数,用传递新文档替换旧文档
db.集合名.save({"_id":ObjectId("5a0c08938b0f19e5e23c53d5"),键:值,.....})
注意:ObjectId()里的ID是带引号,ObjectId()这个单词也必须打出来
再添加集合时候插入"_id":'12',就不会自动生成一个"_id":ObjectId("5a0c08938b0f19e5e23c53d5")
2. 投影操作
find():权限所选择的键,1表示该键,0表示隐藏键
db.集合名.find({需要满需的查询条件},{KEY:1,KEY:0})
/*注意:默认为1,显示所有键
有_id的时候可以有KEY0,1混用但是KEY:0必须在前
无_id时KEY:0,1不能混用*/
3. limit()接收一个数字参数,显示多个文档
db.集合名.find(),limit(数字)
4. skip()跳过几行文档
db.集合名.find().skip(数字).limit(数字)
5. sort()记录排序
1:升序
-1:降序
db.集合名.find().sort({key:1,key:-1})
6. 查询数组
1) $all 通过多个元素来匹配数据
db.集合名.find({键:{$all:['值1','值2']}})
2) $size 查找特定长度的数据
db.集合名.find({键:{$size:3}})
7. $slice 返回某个键匹配的数组元素的一个子集
db.books.insert(
{
'title':"MongoDB Overview",
'by':'tutuorials point',
'tags':['python','database','it'],
'likes':100,
'comment':[{'anme':'yang','comment':'bab'},{'name':'min','comment':'grent'}]
})
db.books.insert({
title:"Metwork Overview",
by:'renming',
tags:['python','database','it'],
likes:20,
comment:[{anme:'yang','comment':'good'},{name:'min',comment:'nice'}]
}
)
{$slice:10} 返回前十条评论
{$slice:-10} 返回后十条评论
{$slice:[23,10]}返回第24条至第33条评论
db.books.find({title:'Metwork Overview'},{comment:{$slice:[0,1]}}).pretty()
/*******************************************************************************************/
8. 文本搜索
创建文本索引,找含有咖啡信息文本
db.stores.insert([
{_id:1,name:'Java Hut',description:'Coffee and cakes'},
{_id:2,name:'Burger Buns',description:'hamburgers'},
{_id:3,name:'Coffee Shop',description:'Just Coffee'},
{_id:4,name:'Clother',description:'Discount clothing'},
{_id:5,name:'Java shopping',description:'Indonesian goods'}
])
文本索引 Text Index
包含任何含有字符串或者字符串数组的元素
你的集合中必须首先创建文本索引,一条集合只能有一条文本搜索索引,但是索引可以覆盖多个自段
db.集合名.createIndex({键:'text',键:"text"})
查找商店包含'coffee','shop','java'中任何一个
db.集合名.find({$text:{$search:"字段1 字段2......"}})
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
注意:两个必须一起使用/*
db.集合名.createIndex({键:'text',键:"text"})
db.集合名.find({$text:{$search:"字段1 字段2......"}})
//////////////////////////////////////////////////////////////////////////////////////////////////////
注意:
目前学到的三个参数
update({查询},{修改},{multi:true})
db.stores.find({name:"Java Hut"}) <ok>
db.stores.find({name:"java Hut"}) <no>
使用$text优点,可以同时在多个属性中查找文本
排除文字
用"-"符号表示包含
查找包含java或者shop,凡是文本中不包含coffee的文档
db.stores.find({$text:{$search:"java -coffee shop"}})
练习
查找food,fruit列表中包含apple 但是不包含banana的文档
db.food.createIndex({fruit:"text"}) 《必须先建立文本索引在查找》
db.food.find({$text:{$search:"apple -banana"}})
9.精确匹配文字
用双引号扩起来的文字为精确匹配
例子
db.stores.find({$text:{$search:"java\"coffee shop\""}})
10.使用点表示法查询,两种方法
$elemMatch:element match
db.集合名.find({"外键":{$elemMatch:{"内键":"值"}}}).pretty()
db.集合名.find({"外键.内键":"值"}).pretty()
修改内嵌文档
基于位置的数组修改器,若是数组有多个值,而我们只对其中的一部分进行行操作,有两种方法
1).通过位置:数组下标是以0开头的,可以将下标直接作为键选择元素
db.集合名.update({查找},{$set:{"外键.0,1,2...内键":值}}) <插入>
db.集合名.update({查找},{$unset:{"外键.0,1,2...内键":1,0}}) <删除>
例子:
db.books.update({by:"tuorials point"},{$set:{"comment.0.comment":"123"}})
2).定位操作符$,统一修改
db.集合名.update({'外键.内键':"值"},{$set:{"外键.$.内键":"ok"}},{multi:true})
例子:
db.books.update({'comment.anme':"yang"},{$set:{"comment.$.comment":"ok"}},{multi:true})
注意:
目前学到的三个参数
update({查询},{修改},{multi:true})
- 2017-11-17-笔记2-mongoDB
- 2017-11-15-笔记1-mongoDB
- MongoDB 学习笔记2
- MongoDb学习笔记-2
- MongoDB权威指南笔记 2 Mongodb入门
- MongoDB自学笔记2---1.2初识MongoDB
- mongodb学习笔记2,mongodb的查询
- MongoDB笔记2:MongoDB 目录配置
- MongoDB学习笔记:(2)、MongoDB主从复制
- MongoDB学习笔记(2)
- MongoDB笔记
- MongoDB笔记
- MongoDB笔记
- MongoDB笔记
- mongodb笔记
- MongoDB 笔记
- MongoDB笔记
- mongodb笔记
- POJ3020 Antenna Placement
- USB会议摄像机的重要的网络特性
- json_encode 与 json_decode的区别
- Spring与Mybatis集成
- 文章标题
- 2017-11-17-笔记2-mongoDB
- 用造小人让你彻底搞懂什么是建造者设计模式
- 架构师是大忽悠吗?阿里技术大牛告诉你真相!
- mysql分表和表分区详解
- Android Studio 必备技巧:TODO 用法及自定义 TODO
- React class clock
- Codeforces Round #374 (Div. 2) 721C Journey DAG上DP
- Effective Java
- Mybatis与Spring集成小结