MongoDB模式设计介绍.ppt

上传人:qwe****56 文档编号:69533071 上传时间:2023-01-06 格式:PPT 页数:38 大小:1.46MB
返回 下载 相关 举报
MongoDB模式设计介绍.ppt_第1页
第1页 / 共38页
MongoDB模式设计介绍.ppt_第2页
第2页 / 共38页
点击查看更多>>
资源描述

《MongoDB模式设计介绍.ppt》由会员分享,可在线阅读,更多相关《MongoDB模式设计介绍.ppt(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、SchemaDesignBasicsRogerBrogerbAbriefhistoryofDataModelingISAMCOBOLNetworkHiearchicalRelational1970E.F.Coddintroduces1stNormalForm(1NF)1971E.F.Coddintroduces2ndand3rdNormalForm(2NF,3NF1974Codd&BoycedefineBoyce/CoddNormalForm(BCNF)2002Date,Darween,Lorentzosdefine6thNormalForm(6NF)ObjectSowhymodeldata?

2、ModelinggoalsGoals:Avoidanomalieswheninserting,updatingordeletingMinimizeredesignwhenextendingtheschemaMakethemodelinformativetousersAvoidbiastowardsaparticularstyleofquery*source:wikipediaRelationalmadenormalizeddatalooklikethisDocumentdatabasesmakenormalizeddatalooklikethisSometermsbeforeweproceed

3、RDBMSDocument DBsTableCollectionView/Row(s)JSONDocumentIndexIndexJoinEmbedding&LinkingacrossdocumentsPartitionShardPartitionKeyShardKeyRecapDesigndocumentsthatsimplymaptoyourapplicationpost=author:“roger”,date:new Date(),text:“I love J.Biebs.”,tags:“rockstar”,“puppy-love”QueryoperatorsConditionalope

4、rators:$ne,$in,$nin,$mod,$all,$size,$exists,$type,.$lt,$lte,$gt,$gte,$ne,/findpostswithanytagsdb.posts.find(tags:$exists:true)QueryoperatorsConditionaloperators:$ne,$in,$nin,$mod,$all,$size,$exists,$type,.$lt,$lte,$gt,$gte,$ne,/findpostswithanytagsdb.posts.find(tags:$exists:true)Regularexpressions:/

5、postswhereauthorstartswithkdb.posts.find(author:/r*/i)QueryoperatorsConditionaloperators:$ne,$in,$nin,$mod,$all,$size,$exists,$type,.$lt,$lte,$gt,$gte,$ne,/findpostswithanytagsdb.posts.find(tags:$exists:true)Regularexpressions:/postswhereauthorstartswithkdb.posts.find(author:/r*/i)Counting:/postswri

6、ttenbymike db.posts.find(author:“roger”).count()ExtendingtheSchemanew_comment=author:“Gretchen”,date:newDate(),text:“BiebsisToll!”new_info=$push:comments:new_comment,$inc:comments_count:1 db.posts.update(_id:“.”,new_info)_id:ObjectId(4c4ba5c0672c685e5e8aabf3),author:”roger,date:SatJul24201019:47:11G

7、MT-0700(PDT),text:I love J.Biebs.,tags:”rockstar,”puppy-love,comments_count:1,comments:author:”Gretchen,date:SatJul24201020:51:03GMT-0700(PDT),text:”BiebsisToll!ExtendingtheSchema/createindexonnesteddocuments:db.posts.ensureIndex(comments.author:1)db.posts.find(comments.author:”Gretchen”)/findlast5p

8、osts:db.posts.find().sort(date:-1).limit(5)/mostcommentedpost:db.posts.find().sort(comments_count:-1).limit(1)Whensorting,checkifyouneedanindexExtendingtheSchemaSingleTableInheritancedb.shapes.find()_id:ObjectId(.),type:circle,area:3.14,radius:1_id:ObjectId(.),type:square,area:4,d:2_id:ObjectId(.),t

9、ype:rect,area:10,length:5,width:2/findshapeswhereradius0db.shapes.find(radius:$gt:0)/createindexdb.shapes.ensureIndex(radius:1)OnetoMany-EmbeddedArray/UsingArrayKeys-sliceoperatortoreturnsubsetofarray-hardtofindlatestcommentsacrossalldocumentsOnetoMany-EmbeddedArray/ArrayKeys-sliceoperatortoreturnsu

10、bsetofarray-hardtofindlatestcommentsacrossalldocuments-Embeddedtree-Singledocument-NaturalOnetoMany-EmbeddedArray/ArrayKeys-sliceoperatortoreturnsubsetofarray-hardtofindlatestcommentsacrossalldocuments-Embeddedtree-Singledocument-Natural-Normalized(2collections)-mostflexible-morequeriesMany-ManyExam

11、ple:-Productcanbeinmanycategories-CategorycanhavemanyproductsProducts-product_idCategory-category_idProd_Categories-id-product_id-category_idproducts:_id:ObjectId(4c4ca23933fb5941681b912e),name:SumatraDarkRoast,category_ids:ObjectId(4c4ca25433fb5941681b912f),ObjectId(4c4ca25433fb5941681b92af”ManyMan

12、yproducts:_id:ObjectId(4c4ca23933fb5941681b912e),name:SumatraDarkRoast,category_ids:ObjectId(4c4ca25433fb5941681b912f),ObjectId(4c4ca25433fb5941681b92af”categories:_id:ObjectId(4c4ca25433fb5941681b912f),name:Indonesia,product_ids:ObjectId(4c4ca23933fb5941681b912e),ObjectId(4c4ca30433fb5941681b9130),

13、ObjectId(4c4ca30433fb5941681b913aManyManyproducts:_id:ObjectId(4c4ca23933fb5941681b912e),name:SumatraDarkRoast,category_ids:ObjectId(4c4ca25433fb5941681b912f),ObjectId(4c4ca25433fb5941681b92af”categories:_id:ObjectId(4c4ca25433fb5941681b912f),name:Indonesia,product_ids:ObjectId(4c4ca23933fb5941681b9

14、12e),ObjectId(4c4ca30433fb5941681b9130),ObjectId(4c4ca30433fb5941681b913a/Allcategoriesforagivenproductdb.categories.find(product_ids:ObjectId(4c4ca23933fb5941681b912e)Many-Manyproducts:_id:ObjectId(4c4ca23933fb5941681b912e),name:SumatraDarkRoast,category_ids:ObjectId(4c4ca25433fb5941681b912f),Objec

15、tId(4c4ca25433fb5941681b92af”categories:_id:ObjectId(4c4ca25433fb5941681b912f),name:Indonesia,product_ids:ObjectId(4c4ca23933fb5941681b912e),ObjectId(4c4ca30433fb5941681b9130),ObjectId(4c4ca30433fb5941681b913a/Allcategoriesforagivenproductdb.categories.find(product_ids:ObjectId(4c4ca23933fb5941681b9

16、12e)/Allproductsforagivencategorydb.products.find(category_ids:ObjectId(4c4ca25433fb5941681b912f)Many-Manyproducts:_id:ObjectId(4c4ca23933fb5941681b912e),name:SumatraDarkRoast,category_ids:ObjectId(4c4ca25433fb5941681b912f),ObjectId(4c4ca25433fb5941681b92af”categories:_id:ObjectId(4c4ca25433fb594168

17、1b912f),name:IndonesiaAlternativeproducts:_id:ObjectId(4c4ca23933fb5941681b912e),name:SumatraDarkRoast,category_ids:ObjectId(4c4ca25433fb5941681b912f),ObjectId(4c4ca25433fb5941681b92af”categories:_id:ObjectId(4c4ca25433fb5941681b912f),name:Indonesia/Allproductsforagivencategorydb.products.find(categ

18、ory_ids:ObjectId(4c4ca25433fb5941681b912f)Alternativeproducts:_id:ObjectId(4c4ca23933fb5941681b912e),name:SumatraDarkRoast,category_ids:ObjectId(4c4ca25433fb5941681b912f),ObjectId(4c4ca25433fb5941681b92af”categories:_id:ObjectId(4c4ca25433fb5941681b912f),name:Indonesia/Allproductsforagivencategorydb

19、.products.find(category_ids:ObjectId(4c4ca25433fb5941681b912f)/Allcategoriesforagivenproductproduct=db.products.find(_id:some_id)db.categories.find(_id:$in:product.category_ids)AlternativeTreesFullTreeinDocumentcomments:author:“rpb”,text:“.”,replies:author:“Fred”,text:“.”,replies:Pros:SingleDocument

20、,Performance,IntuitiveCons:Hardtosearch,4MBlimitTrees-continuedParentLinks-Eachnodeisstoredasadocument-ContainstheidoftheparentChildLinks-Eachnodecontainstheidsofthechildren-Cansupportgraphs(multipleparents/child)ArrayofAncestors-StoreAncestorsofanode_id:a_id:b,ancestors:a,parent:a_id:c,ancestors:a,

21、b,parent:b_id:d,ancestors:a,b,parent:b_id:e,ancestors:a,parent:a_id:f,ancestors:a,e,parent:e_id:g,ancestors:a,b,d,parent:dArrayofAncestors-StoreAncestorsofanode_id:a_id:b,ancestors:a,parent:a_id:c,ancestors:a,b,parent:b_id:d,ancestors:a,b,parent:b_id:e,ancestors:a,parent:a_id:f,ancestors:a,e,parent:

22、e_id:g,ancestors:a,b,d,parent:d/findalldescendantsofb:db.tree2.find(ancestors:b)ArrayofAncestors-StoreAncestorsofanode_id:a_id:b,ancestors:a,parent:a_id:c,ancestors:a,b,parent:b_id:d,ancestors:a,b,parent:b_id:e,ancestors:a,parent:a_id:f,ancestors:a,e,parent:e_id:g,ancestors:a,b,d,parent:d/findalldes

23、cendantsofb:db.tree2.find(ancestors:b)/findallancestorsoff:ancestors=db.tree2.findOne(_id:f).ancestorsdb.tree2.find(_id:$in:ancestors)VariableKeysHowtoindex?_id:uuid1,field1:ctx1:ctx3:5,ctx8:ctx3:5,db.MyCollection.find(field1.ctx1.ctx3:$exists:true)Rewrite:_id:uuid1,field1:key:ctx1”,value:k:ctx3”,v:

24、5,key:ctx8”,value:k:ctx3”,v:5,db.x.ensureIndex(“field1.key.k”,1)findAndModifyQueueexample/Example:findhighestpriorityjobandmarkjob=db.jobs.findAndModify(query:inprogress:false,sort:priority:-1),update:$set:inprogress:true,started:newDate(),new:true)LearnMoreKylespresentation+video:http:/ let us know

25、 what you thinkmongodbDBRefDBRef$ref:collection,$id:id_value-ThinkURL-YDSMV:yourdriversupportmayvarySampleSchema:nr=note_refs:$ref:notes,$id:5,.Dereferencing:nr.forEach(function(r)printjson(dbr.$ref.findOne(_id:r.$id);BSONMongodbstoresdatainBSONinternallyLightweight,Traversable,EfficientencodingTypedboolean,integer,float,date,string,binary,array.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 财经金融

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁