Извлечение только соответствующей части сохраненного документа - PullRequest
0 голосов
/ 06 июня 2011

Я новичок в 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.

Кто-нибудь может подсказать, как это можно сделать правильно? Я не уверен, что это проблема с моим запросом или со структурой самих данных.

Большое спасибо.

1 Ответ

2 голосов
/ 07 июня 2011

Вам нужно подождать следующее устройство: https://jira.mongodb.org/browse/SERVER-828

Вы можете использовать $ slice , только если знаете порядок вставки и положение вашего элемента.

Стандартные запросы на MongoDb всегда возвращают весь документ.

(вопрос также доступен здесь: Запрос MongoDB для возврата только внедренного документа )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...