5

Waterline ORM を使用して MongoDB でキーの設定を解除するには、どの方法を使用しますか?

次のドキュメントを検討してください。

{
    name : 'brian',
    age : 29
}

ユーザーの取得は問題ありません。

var users = Users.findOne({ name : 'brian' }).exec(cb);

年齢は単純に消えてほしいです。これを達成するために、次のことを試しました。

user.age = undefined;
user.save();

user.age = null;
user.save();

delete user.age;
user.save();

どれも機能していないようです。#1 は null に設定し、#2 は null に設定し、#3 は元の値のままにします。

ありがとう。

4

3 に答える 3

0

現在受け入れられている回答は、Sails と Mongo の現在のバージョンでは機能しません。Sails 1.1.0 ( sails-mongo1.0.1) で mongo 4.0 (Userは Sails モデルの名前) を使用して、emailフィールドの設定を解除するには:

const ObjectId = require('mongodb').ObjectID
const mongo = User.getDatastore().manager
const userCollection = mongo.collection(User.tableName)

await userCollection.update(
  {_id: ObjectId(someUserIdString)},
  {$unset: {email: ""}},
)
于 2019-07-11T16:54:27.600 に答える
0

Mongodb サーバー バージョン 3.2.9。Sails のバージョンは 0.12.6 です。ノードのバージョンは 0.12.4 です

Policies.native(function(err, collection) {
   var ObjectID = require('mongodb').ObjectID;
   collection.update(
      {"_id": new ObjectID(req.param('id'))},
      {$unset: {defaultSchema: ""}},
      function (err, object) {
         if(err) return res.badRequest(err);
         res.ok({"message":"Ok"});
      }
   );
});
于 2016-10-31T12:32:46.850 に答える