mongodb & amp; Как использовать условие вложенного уровня в find ()

Прежде всего, я ОЧЕНЬ новичок в Mongodb, поэтому, пожалуйста, потерпите меня. У меня есть коллекция mongodb, которая имеет данные, как показано ниже (в представлении массива PHP):

Array
(
[_id] => MongoId Object
(
[$id] => 8974439e66777114648b47dc
)

[mechFamily] => X07_B22
[mechName] => X07_B22_61
[mechType] => Original
[spans] => Array
(
[noOfSpans] => 5
[span] => Array
(
[0] => Array
(
[type] => solid
[clipShape] => rectangle
[id] => 2d8c1d2a6756323beca8e6e59823e3b

Мое требование заключается в том, что мне нужно передать условие find() который даст мне только те записи, где noOfSpansэто 10.

Я старался:

$myCollection->find(array("spans.noOfSpans" => 10));

Но это ничего не возвращает, я посмотрел на разделы запросов в документах, а также на SO, но ответы довольно запутанные. Может кто-нибудь сказать мне, как запросить эту структуру mongodb?

1

Решение

Я не очень хорошо разбираюсь в синтаксисе PHP, поэтому я собираюсь перевести ваш документ в синтаксис оболочки монго, а затем предложить запрос. Дайте мне знать, если я сделал это неправильно, и я постараюсь исправить это.

{
"_id" : "8974439e66777114648b47dc",
"mechFamily" : "X07_B22",
"mechName" : "X07_B22_61",
"mechType" : "Original",
"spans" : {
"noOfSpans" : 5,
"span" : [
{
"type" : "solid",
"clipShape" : "rectangle",
"id" : "2d8c1d2a6756323beca8e6e59823e3b"}
]
}
}

Запрос на сопоставление документов, где spans.noOfSpans это 10

db.collection.find({ "spans.noOfSpans" : 10 })

похоже, что ваш PHP-запрос не работает. Неверная структура моего документа? Что вы имеете в виду, когда говорите find ничего не возвращает? Он возвращает курсор без результатов? Как вы проверяете?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]