我正在创建一个goindex,但在我需要将2个不同的字段合并到数组之前我尝试使用此代码,但
db.contenuti.update( {},
{$set:
{ "luogo.cordinate":[luogo.dd_latitudine,luogo.dd_longitudine] },
{ "multi": true })
如果我在控制台内运行代码没有错误,但仍保留3个点。
页面示例:
"_id": ObjectId("534ce491e7fbe396208079b4"),
"id_contenuto": NumberInt(188),
"id_formato": NumberInt(19),
"titolo": "panorama",
"uri_cover": "http:\/\/www.inmedialoci.polito.it\/media\/img\/27032014panorama.jpg",
"utilizzo": NumberInt(0),
"data_caricamento": "2014-03-27T12:19:12+0100",
"utente": {
"id_utente": NumberInt(1),
"nome": "Amministratore",
"cognome": "In Media Loci"
},
"luogo": {
"id_luogo": NumberInt(9),
"id_area": NumberInt(1),
"nome": "Passerano Marmorito",
"dd_latitudine"▼: 45.0545372,
"dd_longitudine": 8.0194042,
},
"categorie": {
"0": {
"id_categoria": "4",
"nome": "Ricordi",
"main": "1"
}
}
答案 0 :(得分:0)
在您的查询中,您尝试使用已有字段 dd_latitudine 和 dd_longitudine 作为数组更新 cordinate 字段。在更新中,同时读写方法将不起作用。易于实现这是首先获取文档然后修改并保存。
db.contenuti.find({}).forEach(function(doc) {
doc.luogo.cordinate = [doc.luogo.dd_latitudine,doc.luogo.dd_longitudine] ;
db.contenuti.save(doc);
});