オブジェクト ID が doc 配列に存在するかどうかを確認するために、mongoose の組み込み indexOf() メソッドを使用しようとしています。しかし、ドキュメンテーションにはそうすべきだと書かれていますが、オブジェクト ID ではうまくいかないようです。
var UserSchema = new Schema({
, following : [{ type: Schema.ObjectId, ref: 'User'}]
, followers : [{ type: Schema.ObjectId, ref: 'User'}]
});
これは私に-1を与えています
user1.followers.indexOf(user2._id);
次のデータの場合:
console.log( user1.followers ) # => [ '505e2f1de888c7d701000001' ]
conosle.log( user2._id ) # => 505e2f1de888c7d701000001
console.log( user1.followers.indexOf( user2._id ) ) # => -1
また、user2 オブジェクトだけを渡そうとしましたが、同じ問題:
console.log( user1.followers.indexOf( user2 ) ) # => -1
ここの最後のログには、-1 ではなく 1 が表示されるはずです。
私は何を間違っていますか?
ここにマングースのドキュメントがあります: http://mongoosejs.com/docs/api.html#types_array_MongooseArray-indexOf