07 ~ 13.Dec.2020
7709 ワード
#12月第2週目
さぎょう
APIは初めて実装され、簡単に導入され、フロントに伝達されます.
途中で既存のサービスコードを2つ程度修正する必要があり、スケジュールが遅れる可能性があります.
名学習
アルゴリズム学習は週3日から今週から始まります.毎週8つの問題を解いて一緒に討論する方法.
7日
さぎょう
APIは初めて実装され、簡単に導入され、フロントに伝達されます.
途中で既存のサービスコードを2つ程度修正する必要があり、スケジュールが遅れる可能性があります.
名学習
アルゴリズム学習は週3日から今週から始まります.毎週8つの問題を解いて一緒に討論する方法.
7日
#TODOは特に何もなく、API実現の継続である.来週までに、実施、完備、実施、完備を計画する.
Joi library - enum value
パラメータ検証にはJoiライブラリを使用しています.使い方が簡単すぎて、書くときに書くこともあまりありません.書けるものが出てきました
parameterとしての値がいくつか欲しい場合はどうすればいいですか?パターンを定義します(enum値の場合はどうすればいいですか)!.valid()
でいいです.const schema = Joi.object().keys({
type: Joi.string().valid('value1', 'value2'),
});
orconst SomeEnumType = { TypeA: 'A', TypeB: 'B' };
const schema = Joi.object().keys({
type: Joi.string().valid(...Object.values(SomeEnumType)),
});
const myObj = { type: 'none' };
const result = Joi.validate(myObj, schema);
一日を終える
私もこっそり計画を増やしています.これはあるべき機能で、私は従います.やるべきことが多すぎる.
8~13日
#TODOは昨日一時停止したAPIの実現を再開した.スケルトンは今日完成する見込みです.完了後、緊急TODOチェックから行います.
APIスケルトンの80%が完了するには、十分な時間しかかかりません。
漏れたものがどれくらいあるかはわかりませんが、全体の骨格は完成しています.しかし、明日からじっくり観察すると、多くの箇所が漏れてしまうと予想されます.
しかし、総じて言えば、コードがどの方向に発展すべきかは確定しているので、コードを書くときはあまり悩まないはずです.困ったことは今解決した.これは時間の争いだ.
mongoose.find()メソッドは、ドキュメントを返します。jsはオブジェクトを渡さない。
#質問
.find()で受信したオブジェクトは変更できません.
#解決
javascript objectを返すと思っていましたが、そうではありません.ずっと内容を追加していなかったので、1時間挿したようです.混同の原因はconst DocumentA = await ModelA.find();
DocumentA.a = 'aaa';
console.log(DocumentA.a) // 'aaa'
// 이렇게 'aaa'가 출력된다.
// 이것때문에 "document 수정이 가능하구나~" 하고 계속 다른 방법들을 찾아봤던 것이다.
ctx.response.body = {
DocumentA;
// 그런데 정작 통째로 전달하면 documantA.a 가 사라져버린다.
もう一度探してみると、イタチだった.find()メソッドは純粋なJavaScriptオブジェクトではなくモンゴルDBドキュメントを渡す.ドキュメントなので修正できません.
「修正を可能にするには、find().lean()
のようにlean()
を貼付する必要があります.」leanを使うと、オブジェクトに変換して伝えられます.
subdocument update
#質問const UserSchema = new mongoose.Schema({
// Signup Datas
subDocument: [Subdoc],
});
上記のモデルで特定のサブドキュメントを変更すると、サブドキュメントのidを変更するたびに、サブドキュメントのidが変更されます.idはユニークではありません.
#解決1
Subdocument _id's are not type ObjectIds, they're standard type String. Mongo automatically generates a dynamic string id for these subdocs everytime they're created or modified. You should think about migrating your sub-documents (Addresses) to their its own Model if you want static _id's that do not change upon an update. Then use a Model Reference with the ObjectId type, on the User schema definition. Then when calling User.update(), populate the subdocument content, from its model Reference name Address and filter by _id to modify the target Address doc
簡単に言えば、「SubDocumentのidはオブジェクトIDではありません.String値にすぎません.MongoDBは、サブドキュメントの作成と変更のたびにidを変更します.idを変更しない場合は、サブDocから独立したモデルに変換することをお勧めします.」
#解決2
idを変更せずにsubDocsとして保持する場合は、変更するたびにsubdocに格納されているidが一緒に渡される限り、同じidを保持できます.
1週間で終わる
ああ...仕事が多すぎる~多すぎる~二人でやろうと思っていたことは一人でやっていたので、週末も夜もやっていませんでした.
しかし、个人的な勉强を放弃することはできませんので、毎日1つの试験问题をするつもりです.学習グループもしました.
Reference
この問題について(07 ~ 13.Dec.2020), 我々は、より多くの情報をここで見つけました
https://velog.io/@moongq/07-13.Dec.2020
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
const schema = Joi.object().keys({
type: Joi.string().valid('value1', 'value2'),
});
const SomeEnumType = { TypeA: 'A', TypeB: 'B' };
const schema = Joi.object().keys({
type: Joi.string().valid(...Object.values(SomeEnumType)),
});
const myObj = { type: 'none' };
const result = Joi.validate(myObj, schema);
#TODOは昨日一時停止したAPIの実現を再開した.スケルトンは今日完成する見込みです.完了後、緊急TODOチェックから行います.
APIスケルトンの80%が完了するには、十分な時間しかかかりません。
漏れたものがどれくらいあるかはわかりませんが、全体の骨格は完成しています.しかし、明日からじっくり観察すると、多くの箇所が漏れてしまうと予想されます.
しかし、総じて言えば、コードがどの方向に発展すべきかは確定しているので、コードを書くときはあまり悩まないはずです.困ったことは今解決した.これは時間の争いだ.
mongoose.find()メソッドは、ドキュメントを返します。jsはオブジェクトを渡さない。
#質問
.find()で受信したオブジェクトは変更できません.
#解決
javascript objectを返すと思っていましたが、そうではありません.ずっと内容を追加していなかったので、1時間挿したようです.混同の原因は
const DocumentA = await ModelA.find();
DocumentA.a = 'aaa';
console.log(DocumentA.a) // 'aaa'
// 이렇게 'aaa'가 출력된다.
// 이것때문에 "document 수정이 가능하구나~" 하고 계속 다른 방법들을 찾아봤던 것이다.
ctx.response.body = {
DocumentA;
// 그런데 정작 통째로 전달하면 documantA.a 가 사라져버린다.
もう一度探してみると、イタチだった.find()メソッドは純粋なJavaScriptオブジェクトではなくモンゴルDBドキュメントを渡す.ドキュメントなので修正できません.「修正を可能にするには、
find().lean()
のようにlean()
を貼付する必要があります.」leanを使うと、オブジェクトに変換して伝えられます.subdocument update
#質問
const UserSchema = new mongoose.Schema({
// Signup Datas
subDocument: [Subdoc],
});
上記のモデルで特定のサブドキュメントを変更すると、サブドキュメントのidを変更するたびに、サブドキュメントのidが変更されます.idはユニークではありません.#解決1
Subdocument _id's are not type ObjectIds, they're standard type String. Mongo automatically generates a dynamic string id for these subdocs everytime they're created or modified. You should think about migrating your sub-documents (Addresses) to their its own Model if you want static _id's that do not change upon an update. Then use a Model Reference with the ObjectId type, on the User schema definition. Then when calling User.update(), populate the subdocument content, from its model Reference name Address and filter by _id to modify the target Address doc
簡単に言えば、「SubDocumentのidはオブジェクトIDではありません.String値にすぎません.MongoDBは、サブドキュメントの作成と変更のたびにidを変更します.idを変更しない場合は、サブDocから独立したモデルに変換することをお勧めします.」
#解決2
idを変更せずにsubDocsとして保持する場合は、変更するたびにsubdocに格納されているidが一緒に渡される限り、同じidを保持できます.
1週間で終わる
ああ...仕事が多すぎる~多すぎる~二人でやろうと思っていたことは一人でやっていたので、週末も夜もやっていませんでした.
しかし、个人的な勉强を放弃することはできませんので、毎日1つの试験问题をするつもりです.学習グループもしました.
Reference
この問題について(07 ~ 13.Dec.2020), 我々は、より多くの情報をここで見つけました
https://velog.io/@moongq/07-13.Dec.2020
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(07 ~ 13.Dec.2020), 我々は、より多くの情報をここで見つけました https://velog.io/@moongq/07-13.Dec.2020テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol