好了,即时得到所有convensations用下面的查询:阵列MongoDB的查询不会得到任何结果
return convensations.findOne({}).lean().then(function (convensations) {
console.log(convensations);
});
那会导致如下:
{ _id: 598dd4458b08b727dc53d4a6,
initiateduser: 'spillinfo',
gang: false,
global: false,
members: [ 'spillinfo', '59312d2b329b7535b07e273c' ],
name: 'no name',
__v: 0 }
这就是完全好,但当我做
var userid = "59312d2b329b7535b07e273c";
return convensations.find({members: userid}).lean().then(function (convensations) {
console.log(convensations);
});
它不会给我任何结果,为什么是t帽子?
即时我做错了,以检查如果用户ID是在成员数组内?
UPDATE编辑:
DB模式:
new Schema({
initiateduser : String,
name: {type:String, default: 'no name'},
members: { type: Array, default: []},
time: Number,
global: { type: Boolean, default: false},
gang: { type: Boolean, default: false},
});
和例如插入的/创造新:
var conv = new convensations();
conv.members = [userid, user2];
conv.initiateduser = userid;
conv.save(function (err,room) {
EDIT2:
从查询的一些调试:
getting convensations with userid 59312d2b329b7535b07e273c
Mongoose: convensations.find({ members: ObjectId("59312d2b329b7535b07e273c") }, { fields: {} })
convensations: 0
它工作正常,我 – Sajeetharan
你保存的ObjectId里面'memebers'阵列。请检查数据库内容 –
数据库内容看起来不错。用模式更新了@Sajeetharan。 – maria