編集:
ドキュメントの構造:
{"tags" : ["a"], "name" : "a", "creator" : "Nick here", "users" : [ "Nick here"], "connected" : 1, "ra" : 0.3967885102611035, "_id" : ObjectId("513c3e42071a103c09000003")}
MongoDB$pull演算子に問題があります。配列から値を削除することはありません。これが私の質問です:
db.rooms.update({users: ["Nick here"]},{$pull: {users: ["Nick here"]}})
ユーザーフィールドは次のようになります。
(...),"users" : [ "Nick here" ],
(...)
私がこのように書くと:
db.rooms.update({users: "Nick here"},{$pull: {users: ["Nick here"]}})
また
db.rooms.update({users: "Nick here"},{$pull: {users: "Nick here"}})
エラーが返されます:
$ pull /$pullAll修飾子を非配列に適用できません
それらのクエリの何が問題になっていますか?「users」フィールドが空のときに、ユーザーのニックネームをプル/プッシュしてドキュメントを削除したい。
よろしくお願いします、Michał