摘要:比如現在是第頁,就跳過前頁乘以每頁條。按降序排序更新查詢條件更改項目第三個參數設為只更新一個文檔。更改文檔某一條些數據再調用方法也可更新。刪除查詢條件其他常用的增刪改查解讀的一切都是從開始的。每個映射到集合,并定義該集合中的數據格式類型。
mongoose@5.2.13 快速入門
const mongoose = require("mongoose"); /* 連接數據庫 */ mongoose.connect("mongodb://localhost/mytest", {useNewUrlParser: true}); // 如果沒有mytest這個數據庫,則會自行創建 let db = mongoose.connection; // 如果連接發生錯誤 db.on("error", ()=>{console.error("連接錯誤")}); // 如果連接成功 db.once("open", ()=>{console.log("已經連接")}); /* 注冊一個集合kittens */ let kittySchema = new mongoose.Schema({ name: String, age: Number }); // 添加方法,被編譯到Model原型并在每個文檔實例上公開 kittySchema.methods.talk = function(){ let greeting = this.name || "我還沒有名字"; console.log(`我叫${greeting}`); }; let Kitten = mongoose.model("kittens", kittySchema); /* 創建kittens集合的文檔(實例,即一條數據)*/ let silence = new Kitten({ name: "silence", age: 1 }); // console.log(silence); 會自動加一個 _id 的屬性 let fluffy = new Kitten({ name: "fluffy", age: .5 }); // 存到MongoDB上 silence.save(); fluffy.save((err, result)=>{ if(err)return; fluffy.talk(); });查詢
第一個參數是查詢條件,第二個參數指定結果輸出的項目(可省略,就是全部輸出)。
Kitten.find({name: /^flu/}, {name: 1, _id: 0},(err, result)=>{ if(err)return; console.log(result); })基礎查詢
Kitten.findOne()利用id的唯一性查詢
Kitten.findById(_id,callback)利用正則表達式模糊查詢
let findCondition = { name: { $regex: /si/i } }其他條件
{ age: { $gte: 18 // age >= 18 } }
$or或關系
$nor或關系取反
$gt大于
$gte大于等于
$lt小于
$lte小于等于
$ne不等于
$in在多個值范圍內
$nin不在多個值范圍內
$all匹配數組中多個值
$regex正則,用于模糊查詢
$size匹配數組大小
$maxDistance范圍查詢,距離(基于LBS)
$mod取模運算
$near鄰域查詢,查詢附近的位置(基于LBS)
$exists字段是否存在
$elemMatch匹配內數組內的元素
$within范圍查詢( 基于LBS)
$box范圍查詢,矩形范圍(基于LBS)
$center范圍醒詢,圓形范圍(基于LBS)
$centerSphere范圍查詢,球形范圍(基于LBS)
$slice查詢字段集合中的元素(比如從第幾個之后,第N到第M個元素)
查詢數量Kitten.count({/* 查詢條件 */},(err,num)=>{})分頁查詢(important)
let findCondition = {}; // 查詢條件 let pageSize = 10; // 每頁多少條 let currPage = 5; // 當前是多少頁 let skipNum = (currPage-1)*pageSize; // 跳過條數。比如現在是第5頁,就跳過前4頁乘以每頁10條。 let sort = { age: -1 // 按age降序排序 } Kitten.find(findCondition,{_id:0,age:1,name:1}) .skip(skipNum) .limit(pageSize) .sort(sort) .exec((err,result)=>{});更新
Kitten.update({/*查詢條件*/}, {/*更改項目*/}, {}, (err,res)=>{}); // 第三個參數設為`{multi: false}`只更新一個文檔。
更改文檔某一條(些)數據再調用save方法也可更新。
刪除Kitten.remove({/* 查詢條件 */}, callback)其他常用的增刪改查api
Model.deleteMany()
Model.deleteOne()
Model.findById()
Model.findByIdAndDelete()
Model.findByIdAndRemove()
Model.findByIdAndUpdate()
Model.findOneAndDelete()
Model.findOneAndRemove()
Model.findOneAndUpdate()
Model.replaceOne()
Model.updateMany()
Model.updateOne()
解讀Schemamongoose的一切都是從Schema開始的。每個Scheam映射到MongoDB集合,并定義該集合中 documnet 的數據格式類型。
https://mongoosejs.com/docs文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19298.html
摘要:如圖連接成功后,顯示你的數據庫,在這個節目可以對數據庫進行操作。如圖安裝與加載首先假定你已經安裝了,命令行工具輸入在使用的文件中即可。創建讀取更新刪除單值讀取上文是在中基于對進行增刪查改操作的簡單介紹,以后會有進階的文章。 關鍵詞:mongodb安裝 mongoose使用 robomongo mongoose的CRUD操作 mongoose的查詢,增加,修改,刪除 工具介紹 Mon...
摘要:如圖連接成功后,顯示你的數據庫,在這個節目可以對數據庫進行操作。如圖安裝與加載首先假定你已經安裝了,命令行工具輸入在使用的文件中即可。創建讀取更新刪除單值讀取上文是在中基于對進行增刪查改操作的簡單介紹,以后會有進階的文章。 關鍵詞:mongodb安裝 mongoose使用 robomongo mongoose的CRUD操作 mongoose的查詢,增加,修改,刪除 工具介紹 Mon...
最近在學習node,所以聽說node和mongodb更配哦。。所以我就來學習mongodb了showImg(https://segmentfault.com/img/remote/1460000006818697); 一、mongodb的開啟和關閉 1. 查找mongod是否可用 which mongod 2. 啟動mongodb 指定path 和log日志 mongod --dbpath /...
閱讀 3684·2021-11-25 09:43
閱讀 2600·2021-11-18 13:11
閱讀 2195·2019-08-30 15:55
閱讀 3272·2019-08-26 11:58
閱讀 2823·2019-08-26 10:47
閱讀 2230·2019-08-26 10:20
閱讀 1271·2019-08-23 17:59
閱讀 2999·2019-08-23 15:54