mongoose使用簡記

2022-09-08 05:27:10 字數 2041 閱讀 7963

mongodb中集合相當於表,常用指令

mongo 進入資料庫

use yourdatabase 來選擇你的資料集,這個跟關係型中的一樣

show collections 來檢視你資料集中的表,collection就是關係型中的表

db.createcollection(name,option) name是表名,option(可選)指定有關記憶體大小和索引選項

db.yourcollection.find() 來查詢資訊,()裡面是查詢引數,不填則返回表中全部資訊。可以填乙個或多個字段,比如

db.yourcollection.remove()刪除一條或多條資訊,但保留表db.yourcollection.drop()刪除整個表

db.yourcollection.insert(item)item就是你要插入的資料

db.yourcollection.update(query,updatedata)query就是跟find一樣,先找到你要更新的地方,updatedata可以是下面這樣

$set:}mongodb預設將只更新單一的檔案,來更新多個你需要設定引數置'multi' 為true

mongodb乙個比較好的學習** 

mongoose其實就是mongodb的乙個封裝庫。記錄一下mongoose的簡單使用。

連線:var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/test');其中test是你database的名字

建立schema,就是相當於建立表的結構,跟關係型的一樣

var userschema =mongoose.schema()

然後將schema變成模型(model),這樣你就可以操作model物件了

var userinfo = mongoose.model('userinfo', userschema)

這個過程會在資料庫中建表,表名就是model方法中的第乙個引數+s,比如這個就是userinfos(表名不區分大小寫)

新增一條新資料:

var newuser = new userinfo();

newuser.s**e(

function

(err, user) );

這裡匿名函式的第二個引數是插入成功後返回的物件本身

查詢:

userinfo.find(,function

(err, user) );

和mongodb的基本一致需要查詢的引數,返回的是物件陣列,就算你知道資料庫中只有乙個物件,也是返回長度為1的陣列,如果要只返回乙個物件利用findone方法。

在做應用的時候很有可能有這樣的需求就是,我得到了乙份使用者的名單,我希望傳入名單陣列得到所對應的這群使用者的資訊,說白了就是查詢條件是乙個欄位的陣列。那麼方法如下:

userinfo.find().where('username').in(arr).exec(function

(err,userlist)

else

});

其中where中填寫的就是字段,in(arr)中的arr就是那個使用者名稱陣列

更新:

userinfo.update(, }, function

(err, result) );

很有可能遇到number的字段,然後你想讓它在原有的基礎上加1或者減1,下面是個減1的例子

userinfo.update(, }, function

(err, result) );

計數:

userinfo.count(data, function

(err,count));

刪除和查詢差不多,就不說了,mongoose的文件** 

還有就是我作為萌新遇到的問題:這些操作都是非同步的!非同步這個思想在node中很重要,所以你一定要在**函式裡對資料進行處理。

mongoose使用教程

npm install mongoose const mongoose require mongoose function 下面 相當於操作圖形介面把乙個建立好的資料庫 test 開啟連線 mongoose.connection.once open err else const mongoose r...

node 關於 mongoose 使用

npm i mongoosevar mongoose require mongoose mongoose.set usecreateindex true 新版本對索引的處理方式有所變化,無此 會有警告 mongoose.connect mongodb localhost test mongoose....

在mongoose中使用bluebird

如果我們需要在mongoose中使用promise方法,一般會想到mongoose自帶的mpromise,但是這種方法,已經不再被建議了,雖然目前一般情況下還不影響使用,但如果能夠使用一種穩妥的方式最好不過。替代方法有很多,例如require q koayield等,這裡我介紹一種使用bluebir...