[英]How can I return only the string value of an object from a MongoDB array
valueOf() 返回:
[
{},
{ toUser: '5ed9d49c7e516616600eb693' },
{ toUser: '5ed9d49c7e516616600eb693' },
{ toUser: '5ed9d49c7e516616600eb693' },
{ toUser: '5ed9d3897e516616600eb692' }
]
我只想返回“5ed9d3897e516616600eb692”之類的值或 toUser 擁有的任何值。 如何?
這可以通過幾種不同的方式來完成,其中最好的方式是使用distinct :
db.collection.distinct("toUser")
Output 將是:
[
'5ed9d49c7e516616600eb693',
'5ed9d49c7e516616600eb693',
'5ed9d49c7e516616600eb693',
'5ed9d3897e516616600eb692'
]
您可以使用reduce
和內部回調檢查 object 是否具有使用Object.keys
和長度的任何密鑰。 如果它有 k 則使用Object.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)
您可以使用以下查詢將 object 轉換為字符串
> db.objectidToStringDemo.aggregate([{$project: {toUser: {$toString: "$toUser"}}}]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.