mongoose入門學習

Mongoose

官方手冊:

https://docs.mongodb.com/manual/ 

  1. 條件操作符

https://blog.csdn.net/csm0912/article/details/81178531

栗子

https://blog.csdn.net/qq_38671973/article/details/80687586

$or

Model.find({$or: [{a:1,b:2},{a:10}]}):意思是在模型中查詢出多個符合:a的值爲1並且b的值爲2 或者 a的值爲10的數據

$in

Model.find({name:{$in: [‘朱’,’張’] }}):意思是在模型中查詢出name字段中值爲”朱”或者”張”$elemMatch

Model.find({arr:{$elemMatch: { $eq: 111 }}}):意思是在模型中查詢出arr【數組類型,存儲的是字符串或者數值】這個數組中包含111這個值的數據

Model.find({arr:{$elemMatch:{id:111}}}):意思是在模型中查詢出arr【數組類型,存儲的是對象】這個數組中某個對象id爲111的這條數據

  1. $regex

Model.find({name:{$regex: “朱”, $options:”$i”}})意思是查詢出name字段的值中包含字符”朱”的數據【例如”朱誰誰”就會被查詢出來】,$options是不區分英文的大小寫

查詢不匹配的:Model.find({name:{$regex:/^(?!.*朱)/i}})意思是查詢出name字段的值中不包含字符”朱”的數據【例如”朱誰誰”就不會被查詢出來】,如果條件爲空,需要將括號中的所有條件全部置爲空,Model.find({name:{$regex:/^()/i}})纔可以將所有的數據查詢出來

文章一https://blog.csdn.net/you_are_my_dream/article/details/57402067 

文章二:https://www.jb51.net/article/52491.htm

文章三:http://blog.sina.com.cn/s/blog_3eec0ced0101alve.html 

3. 正則表達式在線生成工具

http://tools.jb51.net/regex/create_reg 

 

  1. 多表聯查

文章一https://segmentfault.com/a/1190000002727265

文章二https://www.jianshu.com/p/817ff51bd548

Populate:

兩表聯查

實際就是當你在a模型中,有一個字段例如bId【b模型的主鍵】,關聯了b模型。(語句:bId:{ type: Schema.Types.ObjectId, ref: ‘b’}  , ref:‘b’是關聯的模型名),然後當查詢a模型時,如果不使用populate那麼,bId顯示的就是b模型的主鍵ID值。

如果populate({path:”bId”}),就是將a模型關聯b模型的bId字段查詢出來這條數據,填充給bId,此時bId就不只是一個id號了,而是此主鍵id在b模型對應的具體數據; a模型關聯多個字段,比如bId,cId,dId,那麼可以通過populate({path:”bid cId dId”})即可填充這幾個字段,字段之間用。空格  分隔即可【這就相當於兩表聯查】

三表聯查

populate({path:”bId”, populate: {path: “cId”}}) 意思就是,a模型關聯了b模型,將bId字段填充完之後,b模型中還有cId字段關聯其他的模型,只需要在內部再次調用populate({path:”cId”})即可填充。【註釋:實際理解爲a模型爲1級,b模型爲二級,c模型爲三級,就比如a關聯了b,c模型,b關聯了e模型,c關聯了f模型,填充b和b中的e,使用populate({path:”b”, populate:{path:e}}),不會出現去c模型中尋找e的情況,除非c也關聯了e模型,並且字段名稱和b中的也一樣纔會彼此都填充】

Select:

選擇模型的哪些字段進行賦值。Populate({path:”bId”, select:{name:1}}),意思爲將bId填充,但只填充此模型的name字段。其他字段默認爲undefined

 

 

 

 

  1. 多級嵌套關聯查詢

文章一https://segmentfault.com/q/1010000012025144 

文章二:https://segmentfault.com/q/1010000012025144

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章