明らかに、私がここで理解していないことがあります。 Model.findOne()
クエリを実行したあと、findOne()
結果に基づいてModel.find()
クエリが実行されます。Mongooseシェルの結果と異なる形式のMongooseが返されましたか?
Model.find()
クエリのドキュメントIDは、同じドキュメントをMongoシェルから直接クエリするときとは異なるフォーマットになっているようです。私は1時間、グーグルではありますが運はありません。私は何が欠けているのですか?
Model.find()
結果...
{ _id: ObjectID { _bsontype: 'ObjectID', id: 'W_?àÅÜY¼-íbO' }, // <- Problem
salt: 'ULRtWgj0qgblPRbSPwTe4A==',
displayName: 'test tester',
provider: 'local',
username: 'tester',
created: Tue Jun 14 2016 06:36:48 GMT+0200 (Romance Daylight Time),
roles: [ 'user' ],
profileImageURL: 'modules/users/client/img/profile/default.png',
referrers: { level1: ObjectID { _bsontype: 'ObjectID', id: 'W^_ó 5IE\u0013
N\u0010c' } }, // <- Also problem
password: 'jXpp+RJIegHFKD50sL2aOlOUhE0rvYtSJZIDB244SDIw93yrbuFCTUJK3SZIs3F
w0DdHOUzlQoLQwTGEcF67Kg==',
email: '[email protected]',
lastName: 'tester',
firstName: 'test',
__v: 0
}
モンゴシェルは
{
"_id" : ObjectId("575f89e0c5dc59bc2ded62d5"), // <- This is different!
"salt" : "ULRtWgj0qgblPRbSPwTe4A==",
"displayName" : "test tester",
"provider" : "local",
"username" : "tester",
"created" : ISODate("2016-06-14T04:36:48.130Z"),
"roles" : [
"user"
],
"profileImageURL" : "modules/users/client/img/profile/default.png",
"referrers" : {
"level1" : ObjectId("575ebef32035ccc8134e1063") // <- This too!
},
"password" : "jXpp+RJIegHFKD50sL2aOlOUhE0rvYtSJZIDB244SDIw93yrbuFCTUJK3S
ZIs3Fw0DdHOUzlQoLQwTGEcF67Kg==",
"email" : "[email protected]",
"lastName" : "tester",
"firstName" : "test",
"__v" : 0
}
>
結果は誰もが私が欠けているものをコンセプトに私に説明できますか?私の検索クエリのほとんどはちょうどいいです...これは私がこれに遭遇したのは初めてです。前もって感謝します。
あなたはどのバージョンのMongoDBとMongooseを使用していますか?それはバージョンの不一致かもしれません([この記事を参照] http://stackoverflow.com/questions/30852106/why-new-documents-in-mongo-have-an-object-and-not-an-objectid/30855254 )といくつかの答え) – robertklep
良い質問。 MongoDBのバージョンは3.0.5、Mongooseのバージョンは4.4.8のように見えます。このページによれば、それらのバージョンは互換性があるはずです:http://mongoosejs.com/docs/compatibility.html – aikorei
私は定期的に非常によく似たバージョンを使用しています。最新のMongoose(4.5.0)を試してみることや、すべての依存関係を完全に再インストールする( '。/ node_modules'を削除し、' npm install'を実行する)ことで潜在的な問題を排除することができます。 – robertklep