mongodb更新查询将数据附加到现有字段

mongodb更新查询将数据附加到现有字段,mongodb,mongodb-query,pymongo,insert-update,Mongodb,Mongodb Query,Pymongo,Insert Update,对于web应用程序表单,我尝试在单击提交时向mongo集合添加数据。我的mongo系列如下: db.collection1.update({"City": "Dublin"}, { '$set' : {"LDE": "LDE-4443"}}), 收藏1: { "_id" : ObjectId("56e0a3a2d59feaa43fba49d5"), "timestamp" : ISODate("2017-11-18T10:23:29.620Z"), "City" : "London ",

对于web应用程序表单,我尝试在单击提交时向mongo集合添加数据。我的mongo系列如下:

 db.collection1.update({"City": "Dublin"}, { '$set' : {"LDE": "LDE-4443"}}), 
收藏1:

 { "_id" : ObjectId("56e0a3a2d59feaa43fba49d5"), "timestamp" : ISODate("2017-11-18T10:23:29.620Z"), "City" : "London ", "LDE" :  "LDE-1234, LDE-345, LDE-456" }
 { "_id" : ObjectId("56e0a3a2d59feaa43fba49d6"), "timestamp" : ISODate("2016-12-18T10:23:29.620Z"), "City" : "Berlin", "LDE" : "LDE-444, LDE-3445, LDE-456" }
 { "_id" : ObjectId("56e0a3a2d59feaa43fba49d7"), "timestamp" : ISODate("2016-12-18T10:23:29.620Z"), "City" : "Dublin", "LDE" : "LDE-444, LDE-3445, LDE-7899, LDE-0909" }
在my form.html中,我有2个输入(城市和LDE) 2为db collection1增值的可能性如下

相同的城市但新的LDE值,然后验证LDE是否存在,并从集合中更新文档。 新建城市,然后将其插入collection1

我正在尝试的更新查询如下所示:

 db.collection1.update({"City": "Dublin"}, { '$set' : {"LDE": "LDE-4443"}}), 
它将集合更改为: {u id:ObjectId(“56e0a3a2d59feaa43fba49d7”),“时间戳”:ISODate(“2016-12-18T10:23:29.620Z”),“城市”:“都柏林”,“LDE”:“LDE-4443”}

我想要的是:

 { "_id" : ObjectId("56e0a3a2d59feaa43fba49d7"), "timestamp" : ISODate("2016-12-18T10:23:29.620Z"), "City" : "Dublin", "LDE" : "LDE-444, LDE-3445, LDE-7899, LDE-0909, LDE-4443" }

此外,根据城市值(不带for或if循环),是否可以在一次查询(插入和更新)中完成此操作。

另请参见
$set
@NeilLunn的文档的一个子部分,我不想为字段设置一些值。我想更新列表(向已经存在的集合添加一个新值)。你不能这样做,这只是一个不同的副本,即使“嵌入式访问”保持不变。你真的需要一个“数组”,因为“重写字符串”需要阅读文档以进行修改,而这不是原子更新。哦!!在这种情况下,有什么更好的解决方案。因此,每次提交im更新都会更新集合。请阅读显示
$push
的链接答案。您可以“附加到数组”,但不能附加到“字符串”。因此,将数据改为数组。如果你想附加一些东西,那就更实用了。