Вопросы с тегом «mongodb-query»

Этот тег предназначен для вопросов, связанных с запросом и обновлением коллекций MongoDB либо через оболочку mongo, либо с помощью драйвера языка программирования.

377
Получить только запрашиваемый элемент в массиве объектов в коллекции MongoDB

Предположим, у вас есть следующие документы в моей коллекции: { "_id":ObjectId("562e7c594c12942f08fe4192"), "shapes":[ { "shape":"square", "color":"blue" }, { "shape":"circle", "color":"red" } ] }, { "_id":ObjectId("562e7c594c12942f08fe4193"), "shapes":[ { "shape":"square", "color":"black" }, {...

372
Обновить поле MongoDB, используя значение другого поля

В MongoDB возможно ли обновить значение поля, используя значение из другого поля? Эквивалентный SQL будет что-то вроде: UPDATE Person SET Name = FirstName + ' ' + LastName И псевдокод MongoDB будет: db.person.update( {}, { $set : { name : firstName + ' ' + lastName }...

336
Случайная запись из MongoDB

Я хочу получить случайную запись из огромного (100 миллионов записей) mongodb. Какой самый быстрый и эффективный способ сделать это? Данные уже есть, и нет поля, в котором я могу сгенерировать случайное число и получить случайную строку. Какие-либо...

205
Как запросить вложенные объекты?

У меня проблема при запросе mongoDB с обозначением вложенных объектов: db.messages.find( { headers : { From: "reservations@marriott.com" } } ).count() 0 db.messages.find( { 'headers.From': "reservations@marriott.com" } ).count() 5 Я не вижу, что я делаю неправильно. Я ожидаю, что нотация вложенных...

184
Как обновить несколько элементов массива в mongodb

У меня есть документ Mongo, который содержит массив элементов. Я хотел бы сбросить .handledатрибут всех объектов в массиве, где .profile= XX. Документ в следующей форме: { "_id": ObjectId("4d2d8deff4e6c1d71fc29a07"), "user_id": "714638ba-2e08-2168-2b99-00002f3d43c0", "events": [{ "handled": 1,...

146
mongodb: вставить, если не существует

Каждый день я получаю запас документов (обновление). Что я хочу сделать, это вставить каждый элемент, который еще не существует. Я также хочу отслеживать первый раз, когда я их вставил, и последний раз, когда я видел их в обновлении. Я не хочу иметь дубликаты документов. Я не хочу удалять документ,...

123
Включите все существующие поля и добавьте новые поля в документ

Я хотел бы определить стадию агрегирования $ project, на которой я могу дать ему указание добавить новое поле и включить все существующие поля без необходимости перечислять все существующие поля. Мой документ выглядит так, с множеством полей: { obj: { obj_field1: "hi", obj_field2: "hi2" }, field1:...

106
MongoDB: как запросить записи, в которых поле равно нулю или не задано?

У меня есть Emailдокумент с sent_atполем даты: { 'sent_at': Date( 1336776254000 ) } Если это Emailне было отправлено, sent_atполе либо пустое, либо не существует. Мне нужно получить количество отправленных / неотправленных Emails. Я застрял в попытке выяснить, как правильно запросить эту...

105
mongodb count количество различных значений для поля / ключа

Есть ли запрос для расчета количества различных значений, содержащихся в поле в БД. fe У меня есть поле для страны, и есть 8 типов значений страны (Испания, Англия, Франция и т. д.) Если кто-то добавит больше документов с новой страной, я бы хотел, чтобы запрос вернул 9. Есть ли способ попроще,...

104
$ поиск по ObjectId в массиве

Каков синтаксис для выполнения поиска $ в поле, которое является массивом ObjectIds, а не просто одним ObjectId? Пример документа для заказа: { _id: ObjectId("..."), products: [ ObjectId("..<Car ObjectId>.."), ObjectId("..<Bike ObjectId>..") ] } Не рабочий запрос: db.orders.aggregate([...

103
Получите последнюю запись из коллекции mongodb

Я хочу узнать самую последнюю запись в коллекции. Как это сделать? Примечание. Я знаю, что работают следующие запросы командной строки: 1. db.test.find().sort({"idate":-1}).limit(1).forEach(printjson); 2. db.test.find().skip(db.test.count()-1).forEach(printjson) где idate добавляет отметку...

98
Как я могу использовать оператор Not Like в MongoDB

Я могу использовать Likeоператор SQL, используя pymongo, db.test.find({'c':{'$regex':'ttt'}}) Но как я могу использовать Not LikeОператора? Я попытался db.test.find({'c':{'$not':{'$regex':'ttt'}}) но получил ошибку: OperationFailure: $ not не может иметь регулярное выражение...

88
Перенаправить вывод запроса mongo в файл csv

Я использую MongoDB 2.2.2 для 32-разрядной машины Windows7. У меня есть сложный запрос агрегирования в файле .js. Мне нужно выполнить этот файл в оболочке и направить вывод в файл CSV. Я гарантирую, что запрос вернет "плоский" json (без вложенных ключей), поэтому он по своей сути может быть...