Я пытаюсь скопировать данные одного документа массива в другой документ массива, используя mongoose с nodejs. элементы массива документа имеют ссылку / objectId на другую коллекцию. Я использую $set
для того, чтобы получить эту функцию следующим образом:
var criteria = {
mId: {
$in: ["id1", "id2", "id3"]
}
};
var options = {
multi: true
}
var dataToSet = {
$set : {
destinationDocument : "$sourceDocument",
}
}
table_name.update(criteria, dataToSet, options, function(err,result){
if(err) {
console.log(err)
}
});
Но я получаю следующую ошибку:
Cast to [ObjectId] failed for value "["$sourceDocument"]" at path "destinationDocument"
моя схема БД выглядит так
new Schema({
idAutoIncrement: { type: Number,unique: true,index:true,sparse:true},
destinationDocument: [{
type: Schema.Types.ObjectId,
ref: "Users",
}],
sourceDocument: [{
type: Schema.Types.ObjectId,
ref: "Users",
}],
});
Может кто-нибудь помочь мне разобраться, что мне нужно сделать, чтобы скопировать все значения от sourceDocument
до destinationDocument
. Любая помощь будет оценена.
Спасибо