使用猫鼬,我如何添加更多的项目对象而不替换现有的?猫鼬:添加更多项目到现有的对象
User.findOneAndUpdate(
{ userId: 0 },
{ userObjects: { newItem: value } }
);
上面代码的问题是,它会清除无论在那里之前,用的newitem替换它时,我想它只是另一个项目添加到userObjects(像JavaScript数组推送功能)。
使用猫鼬,我如何添加更多的项目对象而不替换现有的?猫鼬:添加更多项目到现有的对象
User.findOneAndUpdate(
{ userId: 0 },
{ userObjects: { newItem: value } }
);
上面代码的问题是,它会清除无论在那里之前,用的newitem替换它时,我想它只是另一个项目添加到userObjects(像JavaScript数组推送功能)。
根据你的问题,我猜userObjects
是一个数组。
您可以尝试$push
将项目插入array
。
User.findOneAndUpdate(
{ userId: 0 },
{ $push : {"userObjects": { newItem: value } }},
{safe :true , upsert : true},function(err,model)
{
...
});
欲了解更多信息,请阅读MongoDB $push reference。
希望它可以帮助你。如果您提供了架构,我可以帮助更好。
只需创建一个名为UserObjects
的新集合并执行类似操作。
UserObject.Insert({ userId: 0, newItem: value }, function(err,newObject){
});
每当你想从一个用户,这些用户对象,那么你可以使用monogoose的query population填充与其他收藏品相关的数据父对象做到这一点。如果不是,那么你最好的办法就是使userObjects
成为一个数组。
你的'userObjects'是一个数组吗?你能分享你的模式吗? –
看看我在这个[问题](http://stackoverflow.com/questions/40741373/)最近的答案为指针。 – chridam
@chridam明白了,谢谢! – omidh