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

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

請問如何使用mongoose查詢內嵌數據呢

請問如何使用mongoose查詢內嵌數據呢

慕的地6264312 2018-07-23 21:57:35
const userSchema = new Schema({   name:{type:String},   clubnumber:{type:String},   memo:[{     memos:{type:String}   }] })數據結構如上,現在是想匹配name和clubnumber,來查詢庫下的所有memodb.userModel.findOne({name:name,clubnumber:clubnumber},(e,d)=>{            console.log(d.memo);         })小弟這樣寫的話,控制臺出來的數據是[     { memos:xxx,id:xxxx},     { memos:xxx1,id:xxxxx} ]小弟想得到的數據結構是     {memos1,memos2,memos3}//所有memos的一個數組小弟現在能想到用遍歷重新創建一個數組,但是有大神知道mongoose有什么操作能直接獲得這樣的嗎,感激不盡~
查看完整描述

2 回答

?
FishWithSmile

TA貢獻1條經驗 獲得超0個贊

Schema里memo數組里不存對象,直接放String不就可以嗎?
查看完整回答
反對 回復 2018-08-20
?
蝴蝶刀刀

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

兩種做法:

1、在創建數組模型的時候去掉_id的選項。

//定義const userChildSchema = new Schema(
    { memos: { type: String } },
    { _id: false } //子對象里去掉_id);const userSchema = new Schema({    name: { type: String },    clubnumber: { type: String },    memo: [userChildSchema]
});//查詢userModel.findOne({ name: "nameeeeee" },
    { "memo": 1 },  //select
    null,    function (err, cursor) {        console.log(cursor.toJSON().memo)
    }
);

返回結果:

https://img1.sycdn.imooc.com//5b5dc7f60001f91805440222.jpg

2、mongo里可以只返回匹配的數組中的記錄。

具體做法參考:mongo官網

注:
  • 以上是本機運行的結果。

  • 使用的mongoose版本為:5.2.5

  • mongo版本為:3.4


查看完整回答
反對 回復 2018-07-29
  • 2 回答
  • 0 關注
  • 1211 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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