摘要:的一些高級用法中文移民的用法在中沒有關(guān)聯(lián)查詢這一說,因此必須就要先設(shè)置好相關(guān)聯(lián)的對象比如,我們在中就就先定義一個對象時間價格區(qū)域而后使用把相關(guān)聯(lián)的查詢出來當(dāng)然,也是支持內(nèi)嵌數(shù)組對象的你可以把他定義為復(fù)雜查詢以下是一個復(fù)雜查詢,基本包括了所
mongoose的一些高級用法:
1 populate(中文:移民)的用法
在mongodb中沒有關(guān)聯(lián)查詢這一說,因此必須就要先設(shè)置好相關(guān)聯(lián)的對象
比如,我們在ZonePrice中就就先定義一個Zone對象
var ZonePriceSchema = new mongoose.Schema({ zone:{type:ObjectId, ref:"Zone"}, time: String, //時間 price: Number, //價格 district:String, //區(qū)域 })
而后使用populate把相關(guān)聯(lián)的zone查詢出來
ZonePrice.find({}) .populate({ path:"zone", match:{priceRate:{$gt:0}}, options:{ limit:pageSize, skip:(pageNum-1)*pageSize } })
當(dāng)然,mongoose也是支持內(nèi)嵌數(shù)組對象的
你可以把他定義為
someSchema({ ... ofObjectId: [Schema.Types.ObjectId], ... })
2 復(fù)雜查詢
以下是一個復(fù)雜查詢,基本包括了所有的查詢用法
Person .find({ occupation: /host/ }) .where("name.last").equals("Ghost") // Person.name.last是Ghost .where("age").gt(17).lt(66) // 17 < Person.age <66 .where("likes").in(["vaporizing", "talking"])//likes是vaporizing或者talking .limit(10) //限制10條記錄 .sort("-occupation") //根據(jù)occupation的倒序排 .select("name occupation") //選擇name和occupation字段 .exec(callback);
3 模糊匹配
有時候在項目中需要搜索功能,而搜索功能的實(shí)現(xiàn)必須用模糊匹配,這個時候可以使用or進(jìn)行多字段匹配,但速度比較慢,大系統(tǒng)最好使用專業(yè)的搜索方法
or表示在數(shù)組里的條件滿足一個即可,$regex表示一個正則表達(dá)式,匹配了key,同時,加入了$option的$i表示忽略大小寫
Job.find({ $or: [ {"description": {"$regex": key, $options: "$i"}}, {"city": {"$regex": key, $options: "$i"}}, {"name": {"$regex": key, $options: "$i"}}] }) .populate("JobType", "name") .exec(function (err, jobs) { if (err) { callback(err); } else { callback(null, jobs); } })
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/18865.html
摘要:查詢條件控制返回的字段控制選項回調(diào)函數(shù)。改查詢條件需要修改的數(shù)據(jù),不能修改主鍵控制選項回調(diào)函數(shù),返回的是受影響的行數(shù)。執(zhí)行查詢,回調(diào)函數(shù)。使用鏈?zhǔn)秸Z句時,可以在之后接執(zhí)行查詢,并指定回調(diào)函數(shù)。 初學(xué)Node.js接觸到MongoDB數(shù)據(jù)庫,閱讀資料中推薦的都是Mongoose模塊,可以更加方便的對數(shù)據(jù)庫進(jìn)行操作,便開始接觸Mongoose。在學(xué)習(xí)時碰到許多基礎(chǔ)問題,查閱了許多資料理來理...
摘要:是在環(huán)境下對進(jìn)行便捷操作的對象模型工具安裝一開始需要安裝環(huán)境以及數(shù)據(jù)庫,然后創(chuàng)建數(shù)據(jù)文件夾并且啟動安裝啟動。出錯返回符合條件的文檔數(shù)。修改后的標(biāo)題同上取反,刪除一個字段執(zhí)行后字段不存在增減修改器,只對數(shù)字有效。 Mongoose是在node.js環(huán)境下對mongodb進(jìn)行便捷操作的對象模型工具 安裝 一開始需要安裝node.js環(huán)境以及mongodb數(shù)據(jù)庫,然后創(chuàng)建mongdb數(shù)據(jù)文件...
摘要:當(dāng)然,可以使用方法來簡寫代碼刪除第個元素類似的,該方法也不能省略回調(diào)函數(shù),否則數(shù)據(jù)不會被刪除。 走在前端的大道上 Mongoose是在node.js環(huán)境下對mongodb進(jìn)行便捷操作的對象模型工具 因此,要使用mongoose,則必須安裝node.js環(huán)境以及mongodb數(shù)據(jù)庫。mongoose使mongodb操作更簡單便捷??梢栽?github 中獲得其源碼,也可以在這里查看 ap...
摘要:學(xué)習(xí)注定少不了與數(shù)據(jù)庫打交道,而和可以說是絕配,這篇主要是簡單介紹這個模塊。通過創(chuàng)建查詢是數(shù)據(jù)庫中運(yùn)用最多也是最麻煩的地方,這里對解讀的并不完善,僅僅是自己的一點(diǎn)領(lǐng)悟而已。 學(xué)習(xí)Node注定少不了與數(shù)據(jù)庫打交道,而MongoDB和Node可以說是絕配,這篇主要是簡單介紹Mongoose這個模塊。由于本人也是邊學(xué)邊寫的這篇文章,絕對會有新手的味道,請大神看到這里就表往下看了。 名詞介紹稍...
閱讀 3937·2021-11-24 10:46
閱讀 1822·2021-11-16 11:44
閱讀 2302·2021-09-22 16:02
閱讀 1424·2019-08-30 15:55
閱讀 1139·2019-08-30 12:46
閱讀 573·2019-08-28 18:31
閱讀 2771·2019-08-26 18:38
閱讀 1106·2019-08-23 16:51