猿问

如何从 MongoDB 数组中仅返回对象的字符串值

值的() 返回以下内容:


[

   {},

   { toUser: '5ed9d49c7e516616600eb693' },       

   { toUser: '5ed9d49c7e516616600eb693' },       

   { toUser: '5ed9d49c7e516616600eb693' },       

   { toUser: '5ed9d3897e516616600eb692' }        

]

我只想返回诸如“5ed9d3897e516616600eb692”之类的值,或者toUser具有的任何值。如何?


郎朗坤
浏览 114回答 3
3回答

慕标琳琳

这可以通过几种不同的方式完成,其中最好的方法是使用不同的方式:db.collection.distinct("toUser")输出将是:[    '5ed9d49c7e516616600eb693',    '5ed9d49c7e516616600eb693',    '5ed9d49c7e516616600eb693',    '5ed9d3897e516616600eb692']

慕码人8056858

您可以使用 和 内部回调检查对象是否有任何键使用和长度。如果它有k,则将使用的值推入累加器数组reduceObject.keysObject.valueslet data = [{},  {    toUser: '5ed9d49c7e516616600eb693'  },  {    toUser: '5ed9d49c7e516616600eb693'  },  {    toUser: '5ed9d49c7e516616600eb693'  },  {    toUser: '5ed9d3897e516616600eb692'  }];let filterdValue = data.reduce((acc, curr) => {  const objKey = Object.keys(curr);  if (objKey.length > 0) {    acc.push(...Object.values(curr))  }  return acc;}, []);console.log(filterdValue)

翻翻过去那场雪

可以使用以下查询将对象转换为字符串> db.objectidToStringDemo.aggregate([{$project: {toUser: {$toString: "$toUser"}}}]);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答