標籤:
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: 360031 },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