У меня есть две коллекции: ссылки и дети.MongoDB Shell: Как обновить коллекцию из коллекции
ссылки имеет значения, как это:
> db.links.find().pretty()
{ "_id" : ObjectId("567374999df36aeeda6f2a5f"), "EID" : 1, "CID" : 1 }
{ "_id" : ObjectId("567374999df36aeeda6f2a60"), "EID" : 1, "CID" : 3 }
{ "_id" : ObjectId("567374999df36aeeda6f2a61"), "EID" : 2, "CID" : 5 }
детей значения, как это:
{
"_id" : ObjectId("567382709df36aeeda6f2a7e"),
"CID" : 2,
"Cname" : "Mo",
"Age" : 11
}
{
"_id" : ObjectId("567382709df36aeeda6f2a7f"),
"CID" : 3,
"Cname" : "Adam",
"Age" : 13
}
{
"_id" : ObjectId("567382709df36aeeda6f2a80"),
"CID" : 4,
"Cname" : "Eve",
"Age" : 21
}
Похоже, это должно добавить EID для детей, где ИДС матчи между звеньями и детьми, но это делает ничего.
db.children.find().forEach(function (doc1) {
var doc2 = db.links.find({ id: doc1.CID });
if (doc2.CID == doc1.CID) {
doc1.EID = doc2.EID;
db.children.save(doc1);
}
});
Это устанавливает значение ид у детей до значения Ид из ссылок, где значение ИДС у детей == 14.
db.children.find().forEach(function (doc1) {
var doc2 = db.links.find({},{_id: 0, CID: 1});
if (doc1.CID == 14) {
doc1.EID = doc1.CID;
db.children.save(doc1);
}
});
{
"_id" : ObjectId("567382709df36aeeda6f2a8a"),
"CID" : 14,
"Cname" : "George II",
"Age" : 12,
"EID" : 14
}
Так, кажется, что операция равенства в Javascript (doc2.CID == doc1.CID) не работает. Почему это не будет работать? Я предполагаю, что у меня синтаксис неправильный или я использую неправильную операцию или оператор равенства?
является 'CID' уникальным в' коллекции links'? – styvane