摘要:的一些高級用法中文移民的用法在中沒有關(guān)聯(lián)查詢這一說,因此必須就要先設(shè)置好相關(guān)聯(lián)的對象比如,我們在中就就先定義一個(gè)對象時(shí)間價(jià)格區(qū)域而后使用把相關(guān)聯(lián)的查詢出來當(dāng)然,也是支持內(nèi)嵌數(shù)組對象的你可以把他定義為復(fù)雜查詢以下是一個(gè)復(fù)雜查詢,基本包括了所
mongoose的一些高級用法:
1 populate(中文:移民)的用法
在mongodb中沒有關(guān)聯(lián)查詢這一說,因此必須就要先設(shè)置好相關(guān)聯(lián)的對象
比如,我們在ZonePrice中就就先定義一個(gè)Zone對象
var ZonePriceSchema = new mongoose.Schema({ zone:{type:ObjectId, ref:"Zone"}, time: String, //時(shí)間 price: Number, //價(jià)格 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ù)雜查詢
以下是一個(gè)復(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àng)目中需要搜索功能,而搜索功能的實(shí)現(xiàn)必須用模糊匹配,這個(gè)時(shí)候可以使用or進(jìn)行多字段匹配,但速度比較慢,大系統(tǒng)最好使用專業(yè)的搜索方法
or表示在數(shù)組里的條件滿足一個(gè)即可,$regex表示一個(gè)正則表達(dá)式,匹配了key,同時(shí),加入了$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://www.ezyhdfw.cn/yun/18865.html
摘要:查詢條件控制返回的字段控制選項(xiàng)回調(diào)函數(shù)。改查詢條件需要修改的數(shù)據(jù),不能修改主鍵控制選項(xiàng)回調(diào)函數(shù),返回的是受影響的行數(shù)。執(zhí)行查詢,回調(diào)函數(shù)。使用鏈?zhǔn)秸Z句時(shí),可以在之后接執(zhí)行查詢,并指定回調(diào)函數(shù)。 初學(xué)Node.js接觸到MongoDB數(shù)據(jù)庫,閱讀資料中推薦的都是Mongoose模塊,可以更加方便的對數(shù)據(jù)庫進(jìn)行操作,便開始接觸Mongoose。在學(xué)習(xí)時(shí)碰到許多基礎(chǔ)問題,查閱了許多資料理來理...
摘要:是在環(huán)境下對進(jìn)行便捷操作的對象模型工具安裝一開始需要安裝環(huán)境以及數(shù)據(jù)庫,然后創(chuàng)建數(shù)據(jù)文件夾并且啟動(dòng)安裝啟動(dòng)。出錯(cuò)返回符合條件的文檔數(shù)。修改后的標(biāo)題同上取反,刪除一個(gè)字段執(zhí)行后字段不存在增減修改器,只對數(shù)字有效。 Mongoose是在node.js環(huán)境下對mongodb進(jìn)行便捷操作的對象模型工具 安裝 一開始需要安裝node.js環(huán)境以及mongodb數(shù)據(jù)庫,然后創(chuàng)建mongdb數(shù)據(jù)文件...
摘要:當(dāng)然,可以使用方法來簡寫代碼刪除第個(gè)元素類似的,該方法也不能省略回調(diào)函數(shù),否則數(shù)據(jù)不會(huì)被刪除。 走在前端的大道上 Mongoose是在node.js環(huán)境下對mongodb進(jìn)行便捷操作的對象模型工具 因此,要使用mongoose,則必須安裝node.js環(huán)境以及mongodb數(shù)據(jù)庫。mongoose使mongodb操作更簡單便捷。可以在 github 中獲得其源碼,也可以在這里查看 ap...
摘要:學(xué)習(xí)注定少不了與數(shù)據(jù)庫打交道,而和可以說是絕配,這篇主要是簡單介紹這個(gè)模塊。通過創(chuàng)建查詢是數(shù)據(jù)庫中運(yùn)用最多也是最麻煩的地方,這里對解讀的并不完善,僅僅是自己的一點(diǎn)領(lǐng)悟而已。 學(xué)習(xí)Node注定少不了與數(shù)據(jù)庫打交道,而MongoDB和Node可以說是絕配,這篇主要是簡單介紹Mongoose這個(gè)模塊。由于本人也是邊學(xué)邊寫的這篇文章,絕對會(huì)有新手的味道,請大神看到這里就表往下看了。 名詞介紹稍...
閱讀 4165·2021-11-24 10:46
閱讀 1954·2021-11-16 11:44
閱讀 2452·2021-09-22 16:02
閱讀 1544·2019-08-30 15:55
閱讀 1250·2019-08-30 12:46
閱讀 713·2019-08-28 18:31
閱讀 2924·2019-08-26 18:38
閱讀 1216·2019-08-23 16:51