0

我对 mongoosastic 有问题,它不会从第一次更新中更新 Elasticsearch。我更新了 1 次,没有发生任何事情,然后更新了 2 次,并在弹性搜索中根据我第一次更新的内容进行更新...

这是我的代码:

var User = system.mongoose.model('User', userSchema, 'user');

User.createMapping(function (err, mapping) {
    if (err) {
        console.log("error creating mapping");
        console.log(err);
    } else {
        console.log("Mapping created");
        console.log(mapping);
    }
});

//{$in: ['doctor','nurse']}
var stream = User.synchronize();
var count = 0;

stream.on('data', function (data) {
    count++;
});

stream.on('close', function () {
    console.log("Indexed " + count + " documents");
});

stream.on('error', function (err) {
    console.log(err);
});

有谁知道是什么问题?

4

1 回答 1

0

从你的问题中不清楚你的期望是什么,你得到了什么。

但我猜你正在经历一场比赛,因为你在完成User.synchronize()之前就开始User.createMapping()了。

如果是这样,这可能会更好:

var User = system.mongoose.model('User', userSchema, 'user');

User.createMapping(function (err, mapping) {
    if (err) {
        console.log("error creating mapping");
        console.log(err);
    } else {
        console.log("Mapping created");
        console.log(mapping);

        doTheNextThing();
    }
});

function doTheNextThing () {
    //{$in: ['doctor','nurse']}
    var stream = User.synchronize();
    var count = 0;

    stream.on('data', function (data) {
        count++;
    });

    stream.on('close', function () {
        console.log("Indexed " + count + " documents");
    });

    stream.on('error', function (err) {
        console.log(err);
    });
}
于 2016-12-12T02:15:31.923 回答