Создание запроса с помощью mongoDB и mgo

У меня есть коллекция записей mongoDB, как показано ниже...

{
  "_id": ObjectId("4e2a4ca7f21a81331f0006c3"),
  "users": {
    "bob": 1375496448, "alice": 1375496448
  },
  ...other values...
}

Я ищу простой запрос, чтобы найти все записи...
1) Без пользователя x среди пользователей
2) С пользователем x среди пользователей, где соответствующее значение равно ‹ y

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


person Matt Olan    schedule 03.08.2013    source источник
comment
Не могли бы вы предоставить больше информации о коллекции. Трудно запрашивать коллекцию без лучшего представления о структуре коллекций. Ваше здоровье   -  person dcodesmith    schedule 03.08.2013
comment
Структура, которую я использую для этой коллекции, представляет собой строку адреса, строку порта, отметку времени int, карту пользователей [строка] int. Мне нужен запрос, чтобы вернуть объединение двух случаев, перечисленных выше. Надеюсь, это поможет! :D   -  person Matt Olan    schedule 04.08.2013


Ответы (2)


Предполагая, что ваша коллекция названа пользователями.

1)db.users.find({'users.X':{$exists:false}})

2) db.users.find({'users.X':{$lt:y}})

person Ishaan    schedule 03.08.2013
comment
Можно ли как-то ОБЪЕДИНИТЬ оба результата? Как бы я структурировал это в синтаксисе mgo? - person Matt Olan; 04.08.2013

Ответ Ишаана должен сработать для вас. Я только добавляю способ объединить два запроса.

db.users.find( {$or: [ {'users.X':{$exists:false}}, {'users.X':{$lt:y}} ] } )

Вы найдете документацию по таким операторам, как $or, $and и т. д., на этой странице. .

person shshank    schedule 12.08.2013