如何查询没有特定ID的mongodb中的所有文档?
我正在尝试返回文档的关注者数组中没有用户标识的所有文档。
我用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);
对服务器的调用:(注意我将它从一个string转换为对象ID
GET /stories?userid=53343ac3abcd1b6016c52c1b&count=0 200 201ms - 2b
你可以用下面的查询来做到这一点。
Story.inventory.find({followers: {$exists: true, $nin: [ "53343ac3abcd1b6016c52c1b" ]}}, {$sort: {date: {{$gte: 30 } }, skip: 5, limit: 100, function(err, results) { });
此查询将select“ followers
字段存在的“ User
集合中的所有文档,其值不等于53343ac3abcd1b6016c52c1b
。
注意:不要把id转换成Object,因为mongoose会为你做。