我的用户在mongo数据库中有一个数组。在注册时,我要向该用户数组添加一个新用户(对象)。同时,我想为这个新用户创建一个ObjectID
并创建一个created_at
属性及其创建日期
let NewUserStructure = {
_id: ObjectID(),
username: NewUserUsername,
nome: NewUserName,
password: password,
logado: false,
especialidades: EspecialidadesArray,
adm: isadmin,
cuidade: [],
$currentDate: {criadoem: true},
criadopor: createdby,
};
// let query = {_id: '5b193acdfb6fc05a6fe42785'};
let query = {Profissionais: {$exists: true}};
let NewValue = {$addToSet: {Profissionais: NewUserStructure}};
nosqlquery.update('usuarios', query, NewValue, function(result) {
res.status(200).send(result);
});
我为另一个文件上的 update方法创建了通用函数
const update = function(targetcollection, query, NewValues, callback) {
console.log('update was called');
_db.collection(targetcollection).updateOne(query, NewValues, function(err, result) {
if (err) throw err;
callback(result);
});
};
NewUserStructure
是我使用$addToSet
在Profissionais数组中插入的json。我尝试通过多种方法用currentDate创建该唯一的ObjectID和新属性。
错误:$currentDate is not valid for storage.
我觉得用_id
创建一个ObjectID()
字段不会为用户创建唯一的_id,还有其他方法吗?
答案 0 :(得分:0)
您不能在$currentDate
中使用$addToSet
运算符,因此只能使用new Date()
,类似于您对ObjectID()
的调用所做的操作(很好):
let NewUserStructure = {
_id: ObjectID(),
username: NewUserUsername,
nome: NewUserName,
password: password,
logado: false,
especialidades: EspecialidadesArray,
adm: isadmin,
cuidade: [],
criadoem: new Date(),
criadopor: createdby,
};