亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在MongoDB中查詢內部數組大小

在MongoDB中查詢內部數組大小

12345678_0001 2019-12-12 14:10:06
考慮users集合中的MongoDB文檔:{ username : 'Alex', tags: ['C#', 'Java', 'C++'] }有沒有辦法tags從服務器端獲取數組的長度(而不將標簽傳遞給客戶端)?謝謝!
查看完整描述

3 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

如果用戶名Alex是唯一的,則可以使用以下代碼:


db.test.insert({username:"Alex", tags: ['C#', 'Java', 'C++'] });

db.test.aggregate(

  {$match: {username : "Alex"}}, 

  {$unwind: "$tags"},

  {$project: {count:{$add:1}}},

  {$group: {_id: null, number: {$sum: "$count" }}}

);

{ "result" : [ { "_id" : null, "number" : 3 } ], "ok" : 1 }



查看完整回答
反對 回復 2019-12-14
?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

我認為使用$ inc或通過計劃中的作業來計算每次保存(作為單獨的字段)時標簽的數量可能更有效。


您也可以使用map / reduce進行此操作(規范示例),但這似乎并不是您想要的。


我不確定是否可以完全按照您的要求進行操作,但是您可以使用$ size查詢與特定大小匹配的所有文檔...


> db.collection.find({ tags : { $size: 3 }});

那將為您提供帶有3個標簽的所有文檔...



查看完整回答
反對 回復 2019-12-14
  • 3 回答
  • 0 關注
  • 812 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號