|
1 | 1 | ### 主要是自己使用mongoose的一些有疑虑的地方简单介绍 |
2 | | - 初次使用mongoose的过程中有很多的疑惑,MongoDB是文档型数据库,文档保存在集合中,所有的增删改查都是在集合中操作,而在mongoose中很多操作并没有集合的概念,因此在集合的创建、查询、删除等等操作的时候,我就会想Collections在哪?相信初学者都会有这样的疑惑。直到翻看了官方文档中的一句话,“With Mongoose, everything is derived from a Schema.”注意,是everything。记住这句话,我相信不管是学习还是使用mongoose,那么思考的方向已经对了。 |
3 | | - 使用mongoose连接MongoDB就不多说了,直接上代码: |
| 2 | + 初次使用mongoose的过程中有很多的疑惑,MongoDB是文档型数据库,文档保存在集合中,所有的增删改查都是在集合中操作,而在mongoose中很多操作并没有集合的概念,因此在集合的创建、查询、删除等等操作的时候,我就会想Collections在哪?相信初学者都会有这样的疑惑。直到翻看了官方文档中的一句话,“With Mongoose, everything is derived from a Schema.”注意,是everything。记住这句话,我相信不管是学习还是使用mongoose,那么思考的方向已经对了。 |
| 3 | + 使用mongoose连接MongoDB就不多说了,直接上代码: |
| 4 | +``` |
4 | 5 | var mongoose = require(‘mongoose’); |
5 | 6 | // 引入 mongoose 模块 |
6 | 7 | mongoose.connect(‘mongodb://localhost/test); |
|
14 | 15 | console.log(“MongoDB Opened!”); |
15 | 16 | }); |
16 | 17 | module.exports = mongoose; |
17 | | - 值得注意的是,考虑任何问题,尤其是我们码农在程序中考虑任何问题,都要考虑发生错误怎么办,使用mongoose也不例外。 |
| 18 | +``` |
| 19 | + 值得注意的是,考虑任何问题,尤其是我们码农在程序中考虑任何问题,都要考虑发生错误怎么办,使用mongoose也不例外。 |
| 20 | +``` |
18 | 21 | var mongoose = require(’…/modules/db’); |
19 | 22 | var impressionSchema = mongoose.Schema({ |
20 | 23 | impression:{type:String}, |
|
26 | 29 | if (err) return console.error(err); |
27 | 30 | console.log(“Save Successful!”); |
28 | 31 | }); |
29 | | - 这段代码是保存一个文档的实例,在这段代码中我的疑虑是我们把文档保存在哪个Collection里边?答案仍然是“With Mongoose, everything is derived from a Schema.”,mongoose是通过model来创建mongodb中对应的collection的,mongoose在内部创建collection时将我们传递的collection名(‘friendimpression’)小写化,同时如果小写化的名称后面没有字母——s,则会在其后面添加一s,针对我们刚建的collection,则会命名为:friendimpressions。 |
30 | | - |
| 32 | +``` |
| 33 | + 这段代码是保存一个文档的实例,在这段代码中我的疑虑是我们把文档保存在哪个Collection里边?答案仍然是“With Mongoose, everything is derived from a Schema.”,mongoose是通过model来创建mongodb中对应的collection的,mongoose在内部创建collection时将我们传递的collection名(‘friendimpression’)小写化,同时如果小写化的名称后面没有字母——s,则会在其后面添加一s,针对我们刚建的collection,则会命名为:friendimpressions。 |
| 34 | +``` |
31 | 35 | impressionModel.find(function (err, docs) { |
32 | 36 | if (err) return console.error(err); |
33 | 37 | console.log(docs) |
34 | 38 | }); |
35 | 39 | }; |
36 | | - 查询的疑虑在于,我如果对存在的表进行查询怎么办?我必须先创建model?可是我不需要插入删除等操作,我只想查询一下就完事儿。看一下mongoose官方的查询方法Model.find、Model.findOne、Model.findById、Model.where、Model.$where等等,都是基于Model,Model又来自Schema,其实Schema就是你文档结构的规则,俗话说无规矩不成方圆,MongoDB也是一样,不关你是查询还是插入、删除都得有个规矩,所以即使是简单的查询也要从Schema开始,有了规矩增删改查起来也方便很多。 |
| 40 | +``` |
| 41 | + 查询的疑虑在于,我如果对存在的表进行查询怎么办?我必须先创建model?可是我不需要插入删除等操作,我只想查询一下就完事儿。看一下mongoose官方的查询方法Model.find、Model.findOne、Model.findById、Model.where、Model.$where等等,都是基于Model,Model又来自Schema,其实Schema就是你文档结构的规则,俗话说无规矩不成方圆,MongoDB也是一样,不关你是查询还是插入、删除都得有个规矩,所以即使是简单的查询也要从Schema开始,有了规矩增删改查起来也方便很多。 |
0 commit comments