重撸mongo 官方文档系列 CRUD系列

mongo cyanprobe 7年前 (2017-05-01) 2562次浏览 已收录 0个评论

前言:

重新撸mongo,对应官网API,深入一下,原来的mongo权威指南太老了,而且也没有仔细看。

正文:

$type 修饰符可以对文档类型值进行判断,对应一个类型值表1-16;
$elemMatch 同一元素无视字段顺序匹配,匹配第一个符合要求数组元素
$currentDate: { lastModified: true }  lastModified为任意字段,如果不存在创建值为currenDate
替代:db.inventory.replaceOne() _id可省略,若存在_id匹配必须为已经存在的_id
cursor.objsLeftInBatch() 游标方法,显示最近(下一批次)文档数
更改 : db.collection.update(query, update, options)
批量操作:db.collection.bulkWrite()  可有序,无序操作,有序操作当出现错误不执行之后事物,无序为并行操作,执行后续。
sql与mongo操作映射表  https://docs.mongodb.com/manual/reference/sql-comparison/
$isolated 写锁操作符,不可以在 sharded clusters 中使用,不遵循 全或无 的原则 . 当使用此操作符时不允许交叉的改动行为。
两个阶段提交问题(原子性事物回滚):标记状态 initial-》pending-》applied  根据纪录回滚。
findAndModify() 必须存在唯一索引  writeConcern: { w: “majority”, wtimeout: 5000 } 写入到多个节点返回
db.collection.explain()性能查询
单一键索引方向可以随意。
索引详情字段说明

{
	"cursor" : "BtreeCursor username_1",//索引名
	"isMultiKey" : false,//用于说明本次是否使用了多键索引。
	"n" : 1,//查询返回文档数量
	"nscannedObjects" : 1,//按照索引查找文档数量
	"nscanned" : 1,//按照索引查找数量
	"nscannedObjectsAllPlans" : 1,
	"nscannedAllPlans" : 1,
	"scanAndOrder" : false,//是否排序
	"indexOnly" : false,//是否只是用索引完成查询
	"nYields" : 0,//因为写入需求暂停次数
	"nChunkSkips" : 0,
	"millis" : 0,//查询耗时
	"indexBounds" : {//索引是用范围
		"username" : [
			[
				"user1000",
				"user1000"
			]
		]
	},
	"server" : "user:27017",
	"filterSet" : false
}

 
hint({“$natural”:1}) 强制使用全表扫描 hint 强制使用某索引

后记:

简单记录没接触的关键字,后面会对漏下的操作符做下总结。
 
 
 
 
 


CyanProbe , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:重撸mongo 官方文档系列 CRUD系列
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址