我不知道,如果你想在一個類似SQL的方式,所有的字段,或者如果你想他們都在一個適當的MongoDB的方式。
如果你希望他們在適當的MongoDB的方式,那麼就刪除query.select
線。該行表示只返回其中列出的字段。
如果你的意思是採用類似於SQL的方式,那麼MongoDB不會像那樣工作。每個文檔只有插入時放入的字段。如果插入文檔時,只給了它某些字段,即使其他集合中的其他文檔具有不同的字段,該文檔也只有這些字段。
要確定集合中的所有可用字段,你必須找到所有的文件,通過他們所有的循環,並與所有不同的密鑰,你會發現建立一個對象。
如果你需要每個文檔返回給總有您在選擇指定的字段,你只需要一次,它返回到改變你的對象。
const fields = ['clientname', 'clientdocument', 'client_id', 'password', 'userclient'];
let Client = LisaClient.model('Client', ClientSchema)
let query = Client.findOne({ 'userclient': userclient })
query.select(fields.join(' '))
let result = yield query.exec()
fields.forEach(field => result[field] = result[field]);
這forEach
環路將設置你想要麼在結果中值的字段(如果它在那裏),或undefined
,如果事實並非如此。
非常感謝!你是高手,不僅回答了我的問題,你給了我一個額外的工具,謝謝。你是對的,我正在將我的知識從SQL遷移到noSQL。我的心理結構仍然是關係型 – maoooricio
這就是我的想法。當我第一次切換時,我也有同樣的精神失常。很高興幫助=) – samanime