为什么当我做一个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