为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

郎朗坤 2022-09-23 16:52:29

值的() 返回以下内容:


[

   {},

   { toUser: '5ed9d49c7e516616600eb693' },       

   { toUser: '5ed9d49c7e516616600eb693' },       

   { toUser: '5ed9d49c7e516616600eb693' },       

   { toUser: '5ed9d3897e516616600eb692' }        

]

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


查看完整描述

3 回答

?
慕标琳琳

TA贡献1463条经验 获得超9个赞

这可以通过几种不同的方式完成,其中最好的方法是使用不同的方式

db.collection.distinct("toUser")

输出将是:


[

    '5ed9d49c7e516616600eb693',

    '5ed9d49c7e516616600eb693',

    '5ed9d49c7e516616600eb693',

    '5ed9d3897e516616600eb692'

]


查看完整回答
反对 回复 2022-09-23
?
慕码人8056858

TA贡献1494条经验 获得超6个赞

您可以使用 和 内部回调检查对象是否有任何键使用和长度。如果它有k,则将使用的值推入累加器数组reduceObject.keysObject.values


let 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)


查看完整回答
反对 回复 2022-09-23
?
翻翻过去那场雪

TA贡献1725条经验 获得超12个赞

可以使用以下查询将对象转换为字符串

> db.objectidToStringDemo.aggregate([{$project: {toUser: {$toString: "$toUser"}}}]);



查看完整回答
反对 回复 2022-09-23
  • 3 回答
  • 0 关注
  • 11 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信