0

数据结构是这样的:

`{ 
	"_id" : "550111d9e4b0cb56041d6367", 
	"roleName" : "tangjikede", 
	"level" : 35, 
	"stations" : 
	[ 
		{ 
			"uid" : 1, 
			"name" : "store", 
			"buildingMap" : 
			[ 
				{ "id" : 2051, "x" : 5.7, "y" : 0.9, "z" : 1.4 }, 
				{ "id" : 2003, "x" : -5.3, "y" : 3.3, "z" : 10.1 }, 
				{ "id" : 1851, "x" : -4.7, "y" : 0.6, "z" : 3.6 }, 
				{ "id" : 1801, "x" : -11.1, "y" : 4.2, "z" : -1.4 }
			], 
			"fortMap" : 
			[ 
				{ "sid" : 10501, "index" : 5, "uid" : 4 }, 
				{ "sid" : 10502, "index" : 11, "uid" : 6 }, 
				{ "sid" : 10501, "index" : 12, "uid" : 5 } 
			], 
		},
		{ 
			"uid" : 2, 
			"name" : "tech", 
			"buildingMap" : 
			[ 
				{ "id" : 2051, "x" : 5.7, "y" : 0.4, "z" : 1.9 }, 
				{ "id" : 2003, "x" : -5.3, "y" : 3.4, "z" : 10.5 }, 
				{ "id" : 1851, "x" : -4.7, "y" : 0.1, "z" : 3.2 }, 
				{ "id" : 1801, "x" : -11.5, "y" : 4.5, "z" : -1.4 }
			], 
			"fortMap" : 
			[ 
				{ "sid" : 10501, "index" : 5, "uid" : 4 }, 
				{ "sid" : 10502, "index" : 11, "uid" : 6 }, 
				{ "sid" : 10501, "index" : 12, "uid" : 5 } 
			], 
		}
	]
}`

在玩家离线后, 被攻击之后, 会修改其中的一些属性(固定的), 然后会更新到数据库.
比如修改level 和 stations 中的 buildingMap.
我现在是用两条语句实现的:
db.user.update({“roleName”:”tangjikede”},{$set:{ “level”:36}})
db.user.update({“roleName”:”tangjikede”,”stations.uid”:1},{$set:{ “stations.$.buildingMap”:[
{ “id” : 2051, “x” : 15.7, “y” : 0.4, “z” : 1.9 },
{ “id” : 2003, “x” : -15.3, “y” : 3.4, “z” : 10.5 },
{ “id” : 1851, “x” : -14.7, “y” : 0.1, “z” : 3.2 },
{ “id” : 1801, “x” : -111.5, “y” : 4.5, “z” : -1.4 }
]}})
这两个语句能合并到一起么… 求教