在學(xué)習(xí)Mongoose時(shí)碰到了寫(xiě)入數(shù)據(jù)后查詢(xún)始終為空的問(wèn)題。
先看代碼:



開(kāi)啟mongdb和服務(wù)器:

發(fā)送一次post請(qǐng)求后

但此時(shí)在前端通過(guò)express查詢(xún)還是后端mongo直接查詢(xún)都無(wú)法找到剛剛寫(xiě)入的數(shù)據(jù)

但此時(shí)在后臺(tái)查看local(我使用的數(shù)據(jù)庫(kù))下的集合,發(fā)現(xiàn)并沒(méi)有之前按model創(chuàng)建的"photo"集合,而出現(xiàn)的是"photos"集合???

查詢(xún)后得知mongoose.prototype.model()會(huì)給所有未指定collection名字的model末尾增加一個(gè)s,所有按model中"name"創(chuàng)建的collection都會(huì)實(shí)際映射到"names"的collection中。果然在photos中找到了之前插入的數(shù)據(jù):(你給我變復(fù)數(shù)經(jīng)過(guò)我同意了么???)

到此問(wèn)題已經(jīng)查明,解決方法有兩個(gè) :
第一種:
在創(chuàng)建model的時(shí)候自己就添加上"s"

第二種:
在創(chuàng)建schema處為collection指定一個(gè)name:

再次請(qǐng)求就可以在"photo"這個(gè)集合中查到數(shù)據(jù)了,同理前端查詢(xún)也就可以得到數(shù)據(jù)了

—————————————————————————————————————————————————————
Mongoose那么聰明咋不上天呢???