我正在使用mongodb,我希望能够编辑文档并重新插入而不重复。到目前为止,我已经尝试过collection.findAndModify(),但我无法让它工作。我有这样的集合:
UserProfiles = [
{
userProfileID: 1,
firstName: 'Austin',
lastName: 'Hunter',
email: 'ahun.....com',
token: '',
platform: '',
password: 'incorrect',
companyProfileID: 1,
authentication: '',
UserTopics: [
我希望能够做到这一点:
1 - 通过搜索电子邮件匹配来抓取对象的个人资料。
2 - 当电子邮件匹配时,编辑令牌和平台项目。
3 - 然后将文档重新放入,没有重复。所以我不能再插入它,因为它重复它。
任何人都可以帮我解决这个问题吗?
代码:
function registerUser(email, token, platform) {
MongoClient.connect(url, function(err, db) {
if (err) {
console.log(err);
} else {
console.log("We are connected");
}
var collection = db.collection('UserProfile');
collection.findAndModify({
query: { email: email },
update: { token: token, platform: platform }
});
db.close();
答案 0 :(得分:4)
modelname.findOneAndUpdate({ email: var_email}, { $set: { token: var_token, platform: var_platform}}, { new: true }, function(err, doc)
{
//doc here has updated document, in case you need it.
});
var_email等是您的变量名称,电子邮件是字段名称 数据库中。
{ new: true }
- 此部分用于获取更新的文档,您可以选择在您的代码中没有这个,但是您不会得到更新的文档作为响应。