MongoDB Оператор совокупного набора - $ setEquals
MongoDB: $ setEquals
Операторы MongoDB $ setEquals сравнивают два или более массивов и возвращают значение true, если они имеют одинаковые отдельные элементы, в противном случае возвращает значение false.
Синтаксис:
{$ setEquals: [<expression1>, <expression2> ...]}
- Оператор $ setEquals в MongoDB выполняет операцию set для массивов, а представленные в операторе массивы возвращаются как наборы. Повторяющиеся записи в массиве игнорируются оператором $ setEquals. $ setEquals игнорирует порядок элементов.
- Если в наборе есть вложенный элемент массива, оператор $ setEquals не опускается во вложенный массив, а оценивает массив на верхнем уровне.
Коллекция образцов test_collection
{ "_id" : 1, "A" : [ "cat", "rat" ], "B" : [ "cat", "rat" ] }
{ "_id" : 2, "A" : [ "cat", "rat" ], "B" : [ ] }
{ "_id" : 3, "A" : [ ], "B" : [ "cat" ] }
{ "_id" : 4, "A" : [ "cat", "rat" ], "B" : [ "rat", "cat", "rat" ] }
{ "_id" : 5, "A" : [ "cat", "rat" ], "B" : [ "cat", "rat", "dog" ] }
{ "_id" : 6, "A" : [ "cat", "rat" ], "B" : [ [ "cat", "rat" ] ] }
{ "_id" : 7, "A" : [ "cat", "rat" ], "B" : [ [ "cat" ], [ "rat" ] ] }
{ "_id" : 8, "A" : [ ], "B" : [ ] }
{ "_id" : 9, "A" : [ "cat", "rat" ], "B" : [ "dog", "cat" ] }
}
Пример: $ setEquals
В следующей операции агрегирования оператор $ setEquals сравнивает массивы A и B, чтобы определить, содержат ли массивы одинаковые элементы:
> db.test_collection.aggregate(
... [
... { $project: { A: 1, B: 1, sameElements: { $setEquals: [ "$A", "$B" ] }, _id: 0 } }
... ]
... );
После операции следующий результат будет возвращен оператором $ setEquals.
> db.test_collection.aggregate(
... [
... { $project: { A: 1, B: 1, sameElements: { $setEquals: [ "$A", "$B" ] }, _id: 0 } }
... ]
... );
{ "A" : [ "cat", "rat" ], "B" : [ "cat", "rat" ], "sameElements" : true }
{ "A" : [ "cat", "rat" ], "B" : [ ], "sameElements" : false }
{ "A" : [ ], "B" : [ "cat" ], "sameElements" : false }
{ "A" : [ "cat", "rat" ], "B" : [ "rat", "cat", "rat" ], "sameElements" : true }
{ "A" : [ "cat", "rat" ], "B" : [ "cat", "rat", "dog" ], "sameElements" : false }
{ "A" : [ "cat", "rat" ], "B" : [ [ "cat", "rat" ] ], "sameElements" : false }
{ "A" : [ "cat", "rat" ], "B" : [ [ "cat" ], [ "rat" ] ], "sameElements" : false }
{ "A" : [ ], "B" : [ ], "sameElements" : true }
{ "A" : [ "cat", "rat" ], "B" : [ "dog", "cat" ], "sameElements" : false }
Предыдущая: $ out
Далее: $ setIntersection
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code