MongoDB - 字符串列表到对象列表

时间:2017-02-01 21:04:20

标签: mongodb mongodb-query

我收藏了一个字符串列表:

{
"_id" : "87df7fd8f7df",
"spaces" : [ 
    "45dfsdf5646sdf44fd", 
    "5d4fdf885sahg6f6fg"
],
}

我尝试用这样的对象列表替换:

{
"_id" : "ytry45rty4r4y",
"spaces" : [ 
{
    "id" : "123",
    "role" : ""
}, 
{
    "id" : "321",
    "role" : ""
}, 
}

请帮我创建一个脚本。

1 个答案:

答案 0 :(得分:0)

你能做的最简单的事就是在mongo shell中运行这样的东西。 问题不明确,无法理解你想要做什么映射,但一般代码看起来像这样:



db.testCollection.find().snapshot().forEach(function (elem) {
	if (!(elem && elem.spaces && elem.spaces.length && typeof elem.spaces[0] === 'string')) {
		print('Unable to update object: ' + elem._id.toString());

		return;
	}

	var spaceObjects = elem.spaces.map(function (string) {
		return {
			id: string,
			role: ''
		};
	});

	db.testCollection.update({_id: elem._id},
		{
			$set: {spaces: spaceObjects}
		}
	);
});