Json 合并mongodb上的两个集合
我需要将两个集合合并为一个集合,但我只需要在第一个集合中不存在文档时才放置文档。我怎么做?最好的办法是什么?Json 合并mongodb上的两个集合,json,mongodb,database,Json,Mongodb,Database,我需要将两个集合合并为一个集合,但我只需要在第一个集合中不存在文档时才放置文档。我怎么做?最好的办法是什么? 我看到了一些关于Agegation和mapreduce的内容,但我不确定该使用什么。你能帮帮我吗?这是我想到的最简单的暴力手段 下面,users是要将文档从users2复制到的集合。我假设\u id是合并键 use test; db.users.insert({_id: 1, name: 'Mickey'}); db.users.insert({_id: 2, name: 'Minne
我看到了一些关于Agegation和mapreduce的内容,但我不确定该使用什么。你能帮帮我吗?这是我想到的最简单的暴力手段 下面,
users
是要将文档从users2
复制到的集合。我假设\u id
是合并键
use test;
db.users.insert({_id: 1, name: 'Mickey'});
db.users.insert({_id: 2, name: 'Minney'});
db.users2.insert({_id: 1, name: 'Donald'});
db.users2.insert({_id: 2, name: 'Daisy'});
db.users2.insert({_id: 3, name: 'Pluto'});
var users2 = db.users2.find();
while (users2.hasNext()) {
var u2 = users2.next();
var u = db.users.findOne({'_id': u2._id});
if (u == null) {
db.users.insert(u2);
}
}
米奇
和米妮
将被保留,只有冥王星
将被添加到用户
我认为没有自动的方法。
假设有2个集合用于合并,c1和c2
您可以使用手动执行合并
db.c1.find().forEach(function(item) {
db.c2.insert(item);
db.c1.remove(item);
});
你应该注意这一点,因为mongo不支持多文档事务请查看此问题