我正在寻找一种在水线中执行MongoDB的更新插入操作的方法。一种方法是使用本机方法。
Model.native(function (err, Collection){
Collection.update({"key": "val"}, {"$set": {"x": "val"}}, {"upsert": true}, function (err, updated){
// do something
})
})
但是如果我不想使用本机,我可以看到类似的函数
findOrCreate
,如果该项目不存在,它会创建一个新条目。但是,我找不到更新该项目(如果存在)的方法。这可能吗?还是只能使用本机方法?
注意:我使用的是Sails 0.11
截至目前(v0.10.26),除了您提到的那些之外,没有办法进行 Mongo 风格的更新插入。这个问题每隔一段时间就会出现一次,但我找不到直接解决它的问题,所以也许你可以提高一个。 更新 这个问题
谈论updateOrCreate
,链接的线程表明这可能很快就会添加。我最初正在研究 Sails 问题,所以难怪我什么也没发现。
在 Sails 1.0 中,您还可以通过这种方式执行本机查询:
var db = YourCollection.getDatastore().manager;
var rawYourCollection = db.collection(YourCollection.tableName);
let dbRes = await rawYourCollection.updateOne(
{ findParams },
{ $set: { setParams } },
{ upsert: true }
);