簡體   English   中英

如何從 MongoDB 數組中僅返回 object 的字符串值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM