在MongoDB中,是否可以使用另一个字段中的值更新字段的值?等效的SQL将是这样的:
UPDATE Person SET Name = FirstName + ' ' + LastName
Run Code Online (Sandbox Code Playgroud)
MongoDB伪代码将是:
db.person.update( {}, { $set : { name : firstName + ' ' + lastName } );
Run Code Online (Sandbox Code Playgroud) 我有一个文档列表,每个文档都有lat和lon属性(等等).
{ 'lat': 1, 'lon': 2, someotherdata [...] }
{ 'lat': 4, 'lon': 1, someotherdata [...] }
[...]
Run Code Online (Sandbox Code Playgroud)
我想修改它,使它看起来像这样:
{ 'coords': {'lat': 1, 'lon': 2}, someotherdata [...]}
{ 'coords': {'lat': 4, 'lon': 1}, someotherdata [...]}
[...]
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有这个:
db.events.update({}, {$set : {'coords': {'lat': db.events.lat, 'lon': db.events.lon}}}, false, true)
Run Code Online (Sandbox Code Playgroud)
但它将db.events.lat和db.events.lon视为字符串.如何引用文档的属性?
干杯.
我想在Mongo“订单”字段中更新所有文档,因此它们将是1..2..3..4 .... 34。
运行此命令后,它们都具有“ order”:“ 34”。我究竟做错了什么?
var i = 1;
db.images.find().forEach(function() {
db.images.update(
{},
{ "$set": {"order": NumberInt(i)} },
{ multi: true }
);
i++;
})
Run Code Online (Sandbox Code Playgroud) 我不小心以错误的方式插入了电子邮件和姓名列
{
"_id" : ObjectId("52e72d00d1c3f81199000002"),
"email" : "John",
"name" : "john@gmail.com"
}
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题ObjectId?