爲什麼當我做一個findOne(與find相同)時,它是否只顯示我的「acts」數組中的最後一項。我的收藏只包含一個文件用於測試目的。MongoDB:爲什麼find和findOne只返回最後一個數組元素?
我在mongo cli中這樣做:db.mycollection.findOne();
我findOne()的結果:
{
"_id" : ObjectId("4f0db64659d044892271018f"),
"title" : "Awards Show 2012",
"description" : "An amazing awards show",
"acts" : [
{
"name" : "Act 3",
"description" : "My act description"
}
]
}
這裏是我的文檔:
{
"_id": { "$oid" : "4F0DB64659D044892271018F" },
"title": "Awards Show 2012",
"description": "An amazing awards show",
"acts": [
{
"name": "Act 1",
"description": "My act description"
},
{
"name": "Act 2",
"description": "My act description"
},
{
"name": "Act 3",
"description": "My act description"
}
]
}
編輯:修正了文件 - 有一個錯字
如果'findOne'返回一個只有一個項目的文檔,'find'也一樣,你怎麼知道'你的文檔'在數據庫中? – mnemosyn 2012-01-11 19:09:23
因爲我也在使用MongoHub(gui for mac)。我可以瀏覽我的收藏並擴展我的文檔。屏幕截圖:http://i.imgur.com/uEojd.png – k00k 2012-01-11 19:15:12
我想我可能已經發現了這個問題。我不認爲這個文檔是由MongoHub正確插入的。故障排除,我會盡快回復更多細節。 – k00k 2012-01-11 19:21:10