Javascript 复杂的MongoDB查询我可以';在文档中找不到清晰的示例
我的目标是: 我在服务器端有一个对象Javascript 复杂的MongoDB查询我可以';在文档中找不到清晰的示例,javascript,node.js,database,mongodb,aggregate,Javascript,Node.js,Database,Mongodb,Aggregate,我的目标是: 我在服务器端有一个对象this.data。 并让tobeedite存储在数据库中的文档(对象)的名称。 为了简单起见,我将仅提及对象的几个属性: this.data = { totalMCQs:2, quizTitle:'Hello World', totalChoices:2, mcq1:'What is meant by HTML?', choiceA1:'blah blah', choiceB1:'Hyper text markup language'
this.data
。
并让tobeedite
存储在数据库中的文档(对象)的名称。
为了简单起见,我将仅提及对象的几个属性:
this.data = {
totalMCQs:2,
quizTitle:'Hello World',
totalChoices:2,
mcq1:'What is meant by HTML?',
choiceA1:'blah blah',
choiceB1:'Hyper text markup language',
ans1:'B',
mcq2:'What is meant by CSS?',
choiceA2:'blah blah',
choiceB2:'Cascading style sheets',
ans1:'B'
}
toBeEdited = {
_id:3000,
_anotherId:2000,
totalMCQs:1,
quizTitle:'Noob programmer',
totalChoices:3,
mcq1:'What is meant by JS',
choiceA1:'blah blah',
choiceB1:'blah blah',
choiceC1:'javascript',
ans1:'C'
}
应用查询后,应更新tobeedite
,以便:
toBeEdited = {
_id:3000,
_anotherId:2000,
totalMCQs:2,
quizTitle:'Hello World',
totalChoices:2,
mcq1:'What is meant by HTML?',
choiceA1:'blah blah',
choiceB1:'Hyper text markup language',
ans1:'B',
mcq2:'What is meant by CSS?',
choiceA2:'blah blah',
choiceB2:'Cascading style sheets',
ans1:'B'
}
我需要这样一个mongodb查询,它将覆盖toBeEdited
doc中相同属性的值,并向toBeEdited
doc添加其他属性,而不对toBeEdited
doc中的ID等属性执行任何操作
注:
也可能发生这样的情况,this.data
的MCQ/选择较少,而tobeedite
的MCQ/选择较多。在这种情况下,查询应该覆盖toBeEdited
doc中相同属性的值,并删除toBeEdited
doc中的额外属性,而不对toBeEdited
doc中的某些属性(如ID)执行任何操作
我已经解决了这个问题,但是使用了多个查询,我需要一个查询来完成
当前代码:谢谢 如果仍然有问题,请使用$set,将代码缩减为2个字段(一个字段要更改,另一个字段要保持不变),并删除所有其他字段。