ThinkJS连接MongoDB

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkJS连接MongoDB相关的知识,希望对你有一定的参考价值。

  

 1 ‘use strict‘;
 2 /**
 3  * db config
 4  * @type {Object}
 5  */
 6 module.exports = {
 7     type: "mongo",
 8     log_sql: true,
 9     log_connect: true,
10     adapter: {
11         mysql: {
12          host: ‘127.0.0.1‘,
13          port: ‘‘,
14          database: ‘‘,
15          user: ‘‘,
16          password: ‘‘,
17          prefix: ‘think_‘,
18          encoding: ‘utf8‘
19          },
20         mongo: {
21             prefix: ‘think_‘,
22             database: ‘larry‘, //这里要配置数据库名称
23             encoding: ‘utf8‘,
24             nums_per_page: 10,
25             log_sql: true,
26             log_connect: true,
27             cache: {
28                 on: true,
29                 type: ‘‘,
30                 timeout: 3600
31             },
32             options: {
33                 //authSource: ‘admin‘
34             }
35         }
36     }
37 };

心血来潮想要试试thinkJS操作mongoDB,去官方文档看了看,默认是只给了mysql的配置,源代码也是没有配置mongo的,只有一个官方案例,按照其db.js的配置复制了到我自己的代码,还是不成功。

最后发现其实参考mysql的配置就可以了(不要怪我傻.....新手....)。

 按照官方文档,我进行如下几步:

 thinkjs model user --mongo

 

 生成了user.js后写了以下几行代码

//user.js
‘use strict‘; /** * model * @type {Class} */ module.exports = think.model(‘mongo‘, { addUser: function () { var ret = this.add({ name: Date() }); console.log(this.getModelName(),this.db()); return ret; } });

 

//indexAction.js
indexAction: function (self) { console.log(this.model(‘user‘).addUser()); return self.display(); }

 

 

最后发现log出来的db信息,默认是连接admin数据库的。。。。然后尝试将mongo的配置项加入database字段,修改成自己的,然后居然成功了~。真是糟心啊,弄了一个下午。。

参考连接

https://thinkjs.org/zh-cn/doc/2.1/model_config.html

 

以上是关于ThinkJS连接MongoDB的主要内容,如果未能解决你的问题,请参考以下文章

如何将代码片段存储在 mongodb 中?

知名Node.js框架系列之:我看面向特性的Thinkjs

ThinkJS框架入门详细教程新手入门项目

thinkjs中修改默认主键

thinkjs sql生成原理

(原)thinkjs使用腾讯云https证书