CLI を使用して Mongo インスタンスに接続すると、update 修飾子演算子を問題なく使用できます。
db.users.update({ニックネーム: 'mcoalson'}, { "$addToSet" : { room_ref : "b"}}) db.users.update({ニックネーム: 'mcoalson'}, { "$addToSet" : { room_ref : "c"}}) db.users.findOne({ニックネーム: 'mcoalson'}) { "_id" : ObjectId("4de5e9e982e9556c2a000003"), "ニックネーム" : "mcoalson", "room_ref" : [ "a" 、「d」、「b」、「c」] }
ただし、同じドキュメントの node.js でまったく同じことを行っても、結果はありません。
db.User.update({'nickname': 'mcoalson'}, {"$pullAll": {'room_ref': ["b"]}});
db.User.update({'nickname': 'mcoalson'}, {"$addToSet": {'room_ref': "f"}});
"room_ref" : [ "a", "d", "b", "c" ]
明らかに「b」は削除されておらず、「f」は追加されていません。私は考えられるすべての見積もりシナリオを試しましたが、何も変わりません. node.js コードから find() と findOne() を使用でき、同じ資格情報を使用していますが、何かアドバイスはありますか?