在學(xué)習(xí)Mongoose時碰到了寫入數(shù)據(jù)后查詢始終為空的問題。
先看代碼:
開啟mongdb和服務(wù)器:
發(fā)送一次post請求后
但此時在前端通過express查詢還是后端mongo直接查詢都無法找到剛剛寫入的數(shù)據(jù)
但此時在后臺查看local(我使用的數(shù)據(jù)庫)下的集合,發(fā)現(xiàn)并沒有之前按model創(chuàng)建的"photo"集合柒凉,而出現(xiàn)的是"photos"集合族阅??膝捞?
查詢后得知mongoose.prototype.model()會給所有未指定collection名字的model末尾增加一個s坦刀,所有按model中"name"創(chuàng)建的collection都會實際映射到"names"的collection中。果然在photos中找到了之前插入的數(shù)據(jù):(你給我變復(fù)數(shù)經(jīng)過我同意了么???)
到此問題已經(jīng)查明蔬咬,解決方法有兩個 :
第一種:
在創(chuàng)建model的時候自己就添加上"s"
第二種:
在創(chuàng)建schema處為collection指定一個name:
再次請求就可以在"photo"這個集合中查到數(shù)據(jù)了鲤遥,同理前端查詢也就可以得到數(shù)據(jù)了
—————————————————————————————————————————————————————
Mongoose那么聰明咋不上天呢?林艘?盖奈?