2015-06-05 2 views
1

У меня есть модель Монго, как это:Почему я не вижу элемент массива, когда я делаю db.collection.find()?

attributes:[String] 

Но когда я делаю: db.ads.find({})

Я получил это:

{ "_id" : ObjectId("5571fe998f6319ed03235522"), "attributes" : [ ], "__v" : 0 } 

Я не вижу элементов массива «атрибуты», даже если на самом деле массив содержит это: ["Meublé","Wi-Fi","Salle de sport"]

Я хотел был бы иметь возможность сделать команду как db.ads.find({}) и увидеть элемент внутри массива

Благодаря

ответ

1

Вы делаете это в терминале или код?

Если вы используете терминал:

Используйте ---->db.ads.find()

ИЛИ --->db.ads.find().pretty() , чтобы сделать его хорошо выглядеть

0

Пожалуйста, попробуйте выполнить в консоли следующий запрос:

db.ads.find({"attributes": { $not: { $size: 0 } } }) 

для того, чтобы найти все документы, которые имеют непустое "attributes" массив.

В вашем случае похоже, что у вас может быть много документов с этим массивом пустым, а db.ads.find() возвращает курсор, который показывает в вашей консоли только 20 элементов на каждой итерации (по умолчанию), поэтому на первой итерации вы можете видеть только те которые не имеют значений в "attributes".

Надеюсь, что это поможет.