【发布时间】:2017-08-12 00:37:49
【问题描述】:
好的,所以我通过以下查询获得所有会议:
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);
});
它不会给我任何结果,这是为什么呢?
我在检查用户 ID 是否在成员数组中时做错了什么?
更新编辑:
数据库架构:
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) {
编辑2:
来自查询的一些调试:
getting convensations with userid 59312d2b329b7535b07e273c
Mongoose: convensations.find({ members: ObjectId("59312d2b329b7535b07e273c") }, { fields: {} })
convensations: 0
【问题讨论】:
-
对我来说很好用
-
您是否将 ObjectId 保存在
memebers数组中。请检查数据库内容 -
数据库内容看起来不错。使用架构更新了 @Sajeetharan。
-
更改您的架构并尝试作为成员:{ type: [string], default: []},
-
为什么猫鼬将字符串转换为对象 id
标签: javascript mongodb mongoose mongodb-query