проверить несколько комбинаций запроса mongodb - PullRequest
0 голосов
/ 05 сентября 2018

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

{ 
    "_id" : "kzNRRctKpXa49S4pW", 
    "from" : NumberInt(1), 
    "to" : 5.1, 
    "price" : NumberInt(76)
}
{ 
    "_id" : "JbQGobyPiYhqNm2hB", 
    "from" : 5.1, 
    "to" : 5.2, 
    "price" : NumberInt(1)
}

Я хочу вставить новую комбинацию, которая должна быть

  • отличается от от и до .

Как это проверить перед вставкой?

Например: если уже есть значение

  • от: 5.1
  • до: 5.5 он не должен вставлять новые от и до между или равными одному и тому же значению

Я должен вставить уникальное значение, как.

от до цены
5,1 5,5 5
5,6 6,5 10
0,1 0,2 1
0,6 0,8 2

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Добавьте составной уникальный индекс в два поля, чтобы ваши вставки не выполнялись, если комбинация уже существует.

db['coll'].createIndex( { "from": 1, "to": 1 }, { unique: true } );
0 голосов
/ 05 сентября 2018

Вы можете попробовать операторы "$ gte" и "$ lte" в mongodb. Из документации

$gte selects the documents where the value of the field is greater than
or equal to (i.e. >=) a specified value 

$lte selects the documents where the value of the field is less than or
equal to (i.e. <=) the specified value.

Python:
collection.find({"from":{"$gte": 5.6},  "to": {"$lte": 7.5}}))

Этот запрос выбирает только те документы, для которых значение «от» больше или равно 5,6, а значение «на» больше или равно 7,5.

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