mongoose學習筆記3--簡單查詢1


簡述

查詢就是返回一個集合中的文檔的子集

Mongoose 模型提供了

  find、  

  findOne、

  findById

三種方法用於文檔查詢。

為了方便后面課程的有效學習,我們先添加一些測試數據。

TestModel.create([
{ name:"test1", age:20 },
{ name:"test2", age:30 },
{ name:"test3", age:24 },
{ name:"test4", age:18 },
{ name:"test5", age:60 },
{ name:"test6", age:50, email:"t6@qq.com" },
{ name:"test7", age:40, email:"t7@163.com" },
{ name:"test8", age:27 },
{ name:"test9", age:27, email:"t9@yeah.net" },
{ name:"test10",age:65 }
], function(error,docs) {
    if(error) {
        console.log(error);
    } else {
        console.log('save ok');
    }
});

  注:以上數據僅供后面測試,可以自行修改屬性值,但是必須符合我們之前所定義集合屬性,否則出錯就...

find 過濾查詢

前面我們學習了find的基本使用方法,相信你已經對它完全掌握了,今天呢將對find方法進行更深一步的學習,了解和掌握它的過濾功能,怎么個過濾法呢,請看如下介紹。

1.屬性過濾 find(Conditions,field,callback);

field省略或為Null,則返回所有屬性。

//返回只包含一個鍵值name、age的所有記錄
TestModel.find({},{name:1, age:1, _id:0},function(err,docs){
//docs 查詢結果集
})

  注:我們只需要把顯示的屬性設置為大於零的數都可以,當然1是最好理解的,_id是默認返回,如果不要顯示加上("_id":0),但是,對其他不需要顯示的屬性且不是_id,如果設置為0的話將會拋異常或查詢無果。

findOne的基本用法

與find相同,但只返回單個文檔,也就說當查詢到即一個符合條件的數據時,將停止繼續查詢,並返回查詢結果。

1.單條數據 findOne(Conditions,callback);

TestModel.findOne({ age: 27}, function (err, doc){
// 查詢符合age等於27的第一條數據
// doc是查詢結果
});

  

findOne方法,只返回第一個符合條件的文檔數據。

findById的基本用法

與findOne相同,但它只接收文檔的_id作為參數,返回單個文檔。

1.單條數據 findById(_id, callback);

TestModel.findById('obj._id', function (err, doc){
//doc 查詢結果文檔
});

  注:同樣是單條數據,findById和findOne還是有些區別的。

本次小結

我們講述了針對數據的幾個查詢方法,根據不同條件選擇相應的查詢方法。

總結:

      1. find過濾查詢 :find查詢時我們可以過濾返回結果所顯示的屬性個數。

  2. findOne查詢 :只返回符合條件的首條文檔數據。

  3. findById查詢:根據文檔_id來查詢文檔。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM