としてフィールドの名前を変更することができ、私はMongoDBのを持っていると私は、次のスキーマを持つようにしたい:はどのように私は関数の引数にMongoDB
directory: {
"file1": "id",
"directory1":{
"file1": "..."
"file2": "..."
"file3": "..."
"direcrtory1": {}
}
}
私の質問は:どのように私は、関数のフィールド名を選択することができます$次の関数の引数としてpush?
function createFile(projectId,filename,id){
return Project.updateOne({projectId:projectId},{$push:{directory:{filename: id}}});
}
上記のコードは、データベースでこれを作成します。
"directory": [
{
"id": "someID",
"filename": "something"
}
は今、私は、「ファイル名」がそのように命名されたくありません。関数で次のパラメータ(someID、 'something'、 'anotherId )を取得した場合、データベースには' filename 'が含まれます: anotherId 'であり、出力したいのは' something ':' anotherId 'です。どうすれば入手できますか?
任意の助けが理解されるであろう
対処:
var update = {$set:{}};
update.$set[filename] = id;
Project.updateOne({projectId: projectId},update,{upsert: true});
アップデートサンプルからは、あなたもMongooseを使用しているようですが、それは正しいのですか? – Paul
はい、それは間違いです –