我试图在文档的关注者数组中返回所有没有用户ID的文档。
我正在使用与Node.Js的mongoose,但常规的mongodb方式应该没问题。
修改
添加更多信息:
以下是一个示例文档:
{
__v: 0,
_id: ObjectId("53333273adf3ede81f0ce23b"),
title: "fashion",
date: 1395864179,
followers: [
ObjectId("53343ac3abcd1b6016c52c1b")
]
}
我试图编写的查询,但不确定$ nin是否正确,因为mongodb上的示例与确保文档中的字段不等于事物数组相反,我要确保数组该文件不包含单一元素。
Story.find({followers: {$nin: [user]}}, "_id title", {$sort: {date: {{$gte: 30 } }, skip: 5, limit: 100}, function(err, results) {
模特:
var Story = new Schema({
title: {type: String},
followers: [{ type: ObjectId, ref: 'User' }],
date: {type: Number}
}, {collection: "stories"});
module.exports = mongoose.model('Story', Story);
对服务器的调用:(注意我将其从字符串转换为对象ID
GET /stories?userid=53343ac3abcd1b6016c52c1b&count=0 200 201ms - 2b
答案 0 :(得分:0)
您可以使用以下查询执行此操作;
Story.inventory.find({followers: {$exists: true, $nin: [ "53343ac3abcd1b6016c52c1b" ]}},
{$sort: {date: {{$gte: 30 } }, skip: 5, limit: 100, function(err, results) {
});
此查询将选择User
集合中存在followers
字段且其值不等于53343ac3abcd1b6016c52c1b
的所有文档。
注意:不要将id转换为Object,因为mongoose会为你做这件事。