【node】------mongoose的基本使用------【巷子】
<p>1、安装mongoose</p><div class="cnblogs_code">
<pre>npm install mongoose</pre>
</div>
<p> </p>
<p>2、启动数据库</p>
<div class="cnblogs_code">
<pre>mongod --dbpath d:\data\db</pre>
</div>
<p> </p>
<p>3、引入mongoose模块并连接数据库</p>
<div class="cnblogs_code">
<pre>const mongoose = require("mongoose"<span style="color: rgba(0, 0, 0, 1)">);
mongoose.connect(</span>"mongodb://127.0.0.1:27017/test1",<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(err) {
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(err){
console.log(</span>'连接失败'<span style="color: rgba(0, 0, 0, 1)">);
}</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
console.log(</span>"连接成功"<span style="color: rgba(0, 0, 0, 1)">)
}
});<br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521220645407-1271957355.png" alt=""></span></pre>
<p> </p>
<pre><span style="color: rgba(0, 0, 0, 1)"> </span></pre>
</div>
<p> 4、创建表以及字段类型</p>
<div class="cnblogs_code">
<pre>const User = mongoose.model("user",<span style="color: rgba(0, 0, 0, 1)">{
name:String,
age:Number
})<br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521220718193-321615497.png" alt=""></span></pre>
</div>
<p> 5、增</p>
<div class="cnblogs_code">
<pre>const user = <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> User({
name:</span>"张三"<span style="color: rgba(0, 0, 0, 1)">,
age:</span>19<span style="color: rgba(0, 0, 0, 1)">
})
user.save().then((result)</span>=><span style="color: rgba(0, 0, 0, 1)">{
console.log(</span>"成功的回调"<span style="color: rgba(0, 0, 0, 1)">)
},()</span>=><span style="color: rgba(0, 0, 0, 1)">{
console.log(</span>"失败的回调"<span style="color: rgba(0, 0, 0, 1)">)
})<br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521220759823-1446546497.png" alt=""></span></pre>
</div>
<p> 6、删</p>
<div class="cnblogs_code">
<pre>1<span style="color: rgba(0, 0, 0, 1)">、删除指定数据
User.remove({name:</span>"zhao"}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result)
})
result:是一个对象 返回值是受影响条数
<br>
</span>2<span style="color: rgba(0, 0, 0, 1)">、删除所有数据
User.remove({}).then((result)</span>=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result)
})<br><br>//删除指定ID<br>3、User.findByIdAndRemove(id值).then((result)=>{<br><br>})<br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521220834155-1022130557.png" alt=""></span></pre>
</div>
<p> 7、改</p>
<div class="cnblogs_code">
<pre>User.update({name:"ya"},{$set:{name:"hua"}},{multi:<span style="color: rgba(0, 0, 255, 1)">true</span>}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result)
})
multi:</span><span style="color: rgba(0, 0, 255, 1)">true</span>表示修改多条数据<br><br>User.findByIdAndUpdate(id值,{$set:{需要修改的内容}}.then((result)=>{})</pre>
<img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521221158246-969346657.png" alt=""></div>
<p> </p>
<p>8、查</p>
<p>001查询符合条件的所有数据</p>
<div class="cnblogs_code">
<pre>User.find({name:ya}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result)
})
result是查到的数据<br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521222041920-651896160.png" alt=""></span></pre>
</div>
<p> 002、查询所有数据</p>
<div class="cnblogs_code">
<pre>User.find().then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result)
})<br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521222104201-1112094497.png" alt=""></span></pre>
</div>
<p> 003、查询单条数据</p>
<div class="cnblogs_code">
<pre>User.findOne({name:"zhao"}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result);
})<br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521222130872-1851975109.png" alt=""></span></pre>
</div>
<p> 004、条件查询:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">$lt(小于) $lte(小于等于) $gt(大于) $gte(大于等于) $ne(不等于);
User.find({</span>"age":{"$lt":20}}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result);
})
User.find({</span>"age":{"$lte":20}}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result);
})
User.find({</span>"age":{"$gt":20}}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result)
})
User.find({</span>"age":{"$gte":20}}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result)
})
User.find({</span>"age":{"$ne":19}}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result)
})<br><br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521222205865-1772597905.png" alt=""></span></pre>
</div>
<p> 005、$in(包含 等于) $nin(不包含 不等于)</p>
<div class="cnblogs_code">
<pre>User.find({"age":{"$in":}}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result)
})
User.find({</span>"age":{"$nin":}}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result)
})<br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521222231746-808020555.png" alt=""></span></pre>
</div>
<p> 006、$or(或)</p>
<div class="cnblogs_code">
<pre>User.find({"$or":[{name:"zhao"},{age:20}]}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result)
})<br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521222252368-1944883040.png" alt=""></span></pre>
</div>
<p> 007、$exists (判断当前关键字是否存在)</p>
<div class="cnblogs_code">
<pre>User.find({name:{"$exists":<span style="color: rgba(0, 0, 255, 1)">true</span>}}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result);
})<br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521222317356-1901404969.png" alt=""></span></pre>
</div>
<p> 008、查询指定列 如果不想要id值 只需要设置_id:0</p>
<div class="cnblogs_code">
<pre>User.find({},{name:1,age:1,_id:0}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result);
})<br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521222338597-1882207665.png" alt=""></span></pre>
</div>
<p> 009、升序降序 sort()</p>
<div class="cnblogs_code">
<pre>User.find().sort({age:1}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result)
})<br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521222404493-2049112697.png" alt=""></span></pre>
</div>
<p> 010、模糊查询 //</p>
<div class="cnblogs_code">
<pre>User.find({name:/a/}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result)
})
User.find({name:</span>/^z/}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result);
})
User.find({name:</span>/z$/}).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result);
})<br><br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521222428989-1687895205.png" alt=""></span></pre>
</div>
<p> 011、skip(n):查询n条以后的数据</p>
<div class="cnblogs_code">
<pre>User.find().skip(3).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result);
})<br><br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521222452105-504225992.png" alt=""></span></pre>
</div>
<p> 012、显示n-m之间的数据 skip:跳过n条 limit 显示m-n条</p>
<div class="cnblogs_code">
<pre>User.find().skip(3).limit(2).then((result)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(result)
})<br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521222511530-806392263.png" alt=""></span></pre>
</div>
<p> </p><br><br>
来源:https://www.cnblogs.com/nanianqiming/p/9069760.html
頁:
[1]