localhost:27017,打印 5 條數據。mongo.exe 連接同地址,db.user_photo.find() 返回空。| 連接方式 | 默認數據庫 | 隱式集合 |
|---|---|---|
代碼 MongoClient(host, port) | test(驅動默認) | 代碼中顯式指定或實體類映射 |
命令行 mongo | test | 需手動 use your_db |
代碼中可能通過 @Document(collection="user_photo") 或 mongoTemplate.getCollection("user_photo") 運作在非 test 庫(如 mydb),而命令行停留在 test 庫,故查無數據。
> show dbs
admin 0.000GB
mydb 0.001GB <-- 目標庫
test 0.000GB
> use mydb
switched to db mydb
> db.user_photo.find() // 此刻應能看到數據
@Bean
public MongoDatabase mongoDatabase() {
return mongoClient.getDatabase("mydb"); // 顯式綁定業務庫
}
mongodb://localhost:27017/mydb?authSource=admin
use db 或 URI 帶庫名。@Document("user_photo")、命令行 show collections 核對大小寫。authSource=admin,業務庫單獨授權,避免誤操作 admin 庫。「連接不一致」實為隱式上下文不同。養成顯式指定數據庫習慣,代碼用配置類綁定,命令行先 use db,徹底消除此類迷之 Bug。