我是MongoDB的新手,我正在尝试存储在网站上执行的用户活动。我的数据目前的结构如下:
{ "_id" : ObjectId("4decfb0fc7c6ff7ff77d615e"), "activity" : [ { "action" : "added", "item_name" : "iPhone", "item_id" : 6140, }, { "action" : "added", "item_name" : "iPad", "item_id" : 7220, } ], "name" : "Smith, "user_id" : 2 }
如果我想检索有关item_id 7220的所有活动,我会使用如下查询:
db.find( { "activity.item_id" : 7220 } );
但是,这似乎返回整个文档,包括项目6140的记录。
有人可以建议如何正确完成这项工作吗?我不确定这是我的查询问题,还是数据本身的结构问题。
非常感谢。
答案 0 :(得分:2)
您必须等待以下开发:https://jira.mongodb.org/browse/SERVER-828
只有知道元素的插入顺序和位置时,才能使用 $ slice 。
MongoDb上的标准查询始终返回所有文档。