张艺川 發表於 2018-5-21 22:35:00

【node】------mongoose的基本使用------【巷子】

<p>1、安装mongoose</p>
<div class="cnblogs_code">
<pre>npm install mongoose</pre>
</div>
<p>&nbsp;</p>
<p>2、启动数据库</p>
<div class="cnblogs_code">
<pre>mongod --dbpath d:\data\db</pre>
</div>
<p>&nbsp;</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>&nbsp;</p>
<pre><span style="color: rgba(0, 0, 0, 1)">&nbsp;</span></pre>
</div>
<p>&nbsp;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>&nbsp;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>=&gt;<span style="color: rgba(0, 0, 0, 1)">{
    console.log(</span>"成功的回调"<span style="color: rgba(0, 0, 0, 1)">)
},()</span>=&gt;<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>&nbsp;6、删</p>
<div class="cnblogs_code">
<pre>1<span style="color: rgba(0, 0, 0, 1)">、删除指定数据
User.remove({name:</span>"zhao"}).then((result)=&gt;<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>=&gt;<span style="color: rgba(0, 0, 0, 1)">{
             console.log(result)
})<br><br>//删除指定ID<br>3、User.findByIdAndRemove(id值).then((result)=&gt;{<br><br>})<br><img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521220834155-1022130557.png" alt=""></span></pre>
</div>
<p>&nbsp;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)=&gt;<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)=&gt;{})</pre>
<img src="https://images2018.cnblogs.com/blog/917454/201805/917454-20180521221158246-969346657.png" alt=""></div>
<p>&nbsp;</p>
<p>8、查</p>
<p>001查询符合条件的所有数据</p>
<div class="cnblogs_code">
<pre>User.find({name:ya}).then((result)=&gt;<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>&nbsp;002、查询所有数据</p>
<div class="cnblogs_code">
<pre>User.find().then((result)=&gt;<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>&nbsp;003、查询单条数据</p>
<div class="cnblogs_code">
<pre>User.findOne({name:"zhao"}).then((result)=&gt;<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>&nbsp;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)=&gt;<span style="color: rgba(0, 0, 0, 1)">{
             console.log(result);
})

User.find({</span>"age":{"$lte":20}}).then((result)=&gt;<span style="color: rgba(0, 0, 0, 1)">{
             console.log(result);
})

User.find({</span>"age":{"$gt":20}}).then((result)=&gt;<span style="color: rgba(0, 0, 0, 1)">{
             console.log(result)
})

User.find({</span>"age":{"$gte":20}}).then((result)=&gt;<span style="color: rgba(0, 0, 0, 1)">{
             console.log(result)
})

User.find({</span>"age":{"$ne":19}}).then((result)=&gt;<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>&nbsp;005、$in(包含 等于)&nbsp;&nbsp;$nin(不包含 不等于)</p>
<div class="cnblogs_code">
<pre>User.find({"age":{"$in":}}).then((result)=&gt;<span style="color: rgba(0, 0, 0, 1)">{
             console.log(result)
})

User.find({</span>"age":{"$nin":}}).then((result)=&gt;<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>&nbsp;006、$or(或)</p>
<div class="cnblogs_code">
<pre>User.find({"$or":[{name:"zhao"},{age:20}]}).then((result)=&gt;<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>&nbsp;007、$exists (判断当前关键字是否存在)</p>
<div class="cnblogs_code">
<pre>User.find({name:{"$exists":<span style="color: rgba(0, 0, 255, 1)">true</span>}}).then((result)=&gt;<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>&nbsp;008、查询指定列 如果不想要id值 只需要设置_id:0</p>
<div class="cnblogs_code">
<pre>User.find({},{name:1,age:1,_id:0}).then((result)=&gt;<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>&nbsp;009、升序降序 sort()</p>
<div class="cnblogs_code">
<pre>User.find().sort({age:1}).then((result)=&gt;<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>&nbsp;010、模糊查询 //</p>
<div class="cnblogs_code">
<pre>User.find({name:/a/}).then((result)=&gt;<span style="color: rgba(0, 0, 0, 1)">{
             console.log(result)
})

User.find({name:</span>/^z/}).then((result)=&gt;<span style="color: rgba(0, 0, 0, 1)">{
             console.log(result);
})

User.find({name:</span>/z$/}).then((result)=&gt;<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>&nbsp;011、skip(n):查询n条以后的数据</p>
<div class="cnblogs_code">
<pre>User.find().skip(3).then((result)=&gt;<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>&nbsp;012、显示n-m之间的数据 skip:跳过n条 limit 显示m-n条</p>
<div class="cnblogs_code">
<pre>User.find().skip(3).limit(2).then((result)=&gt;<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>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/nanianqiming/p/9069760.html
頁: [1]
查看完整版本: 【node】------mongoose的基本使用------【巷子】