成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

mongoose復(fù)雜查詢

wdzgege / 1565人閱讀

摘要:的一些高級用法中文移民的用法在中沒有關(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

相關(guān)文章

  • Mongoose增查改刪學(xué)習(xí)筆記

    摘要:查詢條件控制返回的字段控制選項回調(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ǔ)問題,查閱了許多資料理來理...

    lookSomeone 評論0 收藏0
  • 在node中的mongodb及mongoose常見用法

    摘要:是在環(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ù)文件...

    liuhh 評論0 收藏0
  • 一篇文章帶你入門Mongoose

    摘要:當(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...

    wayneli 評論0 收藏0
  • Nodejs+Express學(xué)習(xí)二(Mongoose基礎(chǔ)了解)

    摘要:學(xué)習(xí)注定少不了與數(shù)據(jù)庫打交道,而和可以說是絕配,這篇主要是簡單介紹這個模塊。通過創(chuàng)建查詢是數(shù)據(jù)庫中運(yùn)用最多也是最麻煩的地方,這里對解讀的并不完善,僅僅是自己的一點(diǎn)領(lǐng)悟而已。 學(xué)習(xí)Node注定少不了與數(shù)據(jù)庫打交道,而MongoDB和Node可以說是絕配,這篇主要是簡單介紹Mongoose這個模塊。由于本人也是邊學(xué)邊寫的這篇文章,絕對會有新手的味道,請大神看到這里就表往下看了。 名詞介紹稍...

    617035918 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<