Каково значение ({})? - PullRequest
       7

Каково значение ({})?

0 голосов
/ 09 мая 2019

Иногда я использую JavaScript или MongoDB, Я вижу код, подобный этому: ({})

Например, в этой строке кода:

db.users.find({})

Но я не знаю, что именно означает. Вы скажете мне, что это такое?

Ответы [ 4 ]

6 голосов
/ 09 мая 2019

{} - это пустой инициализатор объекта (он же «литерал объекта»). Он создает объект без собственных свойств. Причина в том, что он находится в (), вероятно, заключается в том, что он появляется там, где в противном случае { будет указыватьначало блока.

Пересмотрите редактирование, добавив пример:

db.users.find({})

, который создает пустой объект ({}) и затем вызывает db.users.find с этим объектом в качестве аргумента.См. ответ dvlgs , что это значит для MongoDB.

3 голосов
/ 09 мая 2019

О частном случае мангуста и .find метода

db.users.find({})

означает найти все данные в коллекции users и вернуть их (будьте осторожны, db.users.find вернет Promise объект, который необходимо разрешить) .

db.users.find({}) эквивалентно SELECT * from users WHERE 1, если это был SQL.

{} означает, что мы вызываем функцию db.users.find({}) с условием по умолчанию (первый аргумент find - это условие, называемое местонахождением запроса) . По умолчанию аргументом является то, что вы извлекаете все данные.



В более общем контексте существует многократный контекст, с которым вы можете встретить этот синтаксис для

// #1

// Instantiation of an object
const obj = {};

// Parenthesis can be added here, they have no effect whatsoever
// There are useless
const obj2 = ({});

// Note that this also work
const obj3 = (((({}))));

console.log('objects', obj, obj2, obj3);

// #2

// argument on a function
function f(arg) {
  console.log(arg);
}

// Here we call the function 'f' and set as the first argument of the
// function an object having a key names 'a'
f({
  a: 'arg1',
});
2 голосов
/ 09 мая 2019

В каком контексте?

db.collection.find({}), например, означает «список документов без каких-либо фильтров».

0 голосов
/ 09 мая 2019

В дополнение к другим ответам, вы часто заключаете объект в скобки, чтобы заставить функцию стрелки вернуть объект.

(a,b)=>"abc"         // returns a string
(a,b)=>{}            // does NOT return an object
(a,b)=>{ return {} } // because outer brackets is the function body
(a,b)=>({})          // DOES return an object, because parenthesis 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...