Как уже указывалось, вы пытаетесь создать реляционную базу данных из какой-либо реляционной базы данных, которую вы действительно не хотите делать, но в любом случае, если у вас есть случай, когда вы должны это сделать, это решение, которое вы можете использовать , Сначала мы делаем поиск foreach в коллекции A (или в вашем случае пользователей), и затем мы получаем каждый элемент как объект, тогда мы используем свойство объекта (в вашем случае uid) для поиска в нашей второй коллекции (в ваших комментариях к случаю), если мы может найти его, тогда у нас есть совпадение, и мы можем печатать или что-то делать с ним. Надеюсь, это поможет вам и удачи:)
db.users.find().forEach(
function (object) {
var commonInBoth=db.comments.findOne({ "uid": object.uid} );
if (commonInBoth != null) {
printjson(commonInBoth) ;
printjson(object) ;
}else {
// did not match so we don't care in this case
}
});
Вы были почти там. Вам просто нужно было получить доступ к свойству name вашего объекта "s". В этом сценарии я использовал деструктуризацию , чтобы получить быстрый доступ к свойству «name».
const products=[{id:"pdc",code:"123456",name:"pompa"},{id:"kbr",code:"2365",name:"kit kbr"},{id:"boiler",code:"23165",name:"VPB"}];
const res = products.filter(({name})=>name.includes("kbr"));
console.log(res);
Я бы использовал функцию Array.find (), потому что она останавливается на первом подходящем объекте:
const products = [
{id: 'pdc', code: '123456', name: 'pompa'},
{id: 'kbr', code: '2365', name: 'kit kbr'},
{id: 'boiler', code: '23165', name: 'VPB'}
];
const testPattern = 'kbr';
const productsContains = (products, pattern) =>
products.find(
({id, name}) =>
id.indexOf(pattern) >= 0 || name.indexOf(pattern) >= 0
) ? true : false;
console.log(`productsContains '${testPattern}':`, productsContains(products, testPattern));
It не работает в IE, но есть polyfill.
Использование some
является лучшим подходом для этого, оно остановится, как только что-то найдет. для больших массивов это будет улучшение:)
products = [
{id: 'pdc', code: '123456', name: 'pompa'},
{id: 'kbr', code: '2365', name: 'kit kbr'},
{id: 'boiler', code: '23165', name: 'VPB'}
];
const result = products.some(product => Object.keys(product).some(key => product[key].includes('kbr')))
console.log(result)