查询MongoDB中的嵌入式文档

时间:2014-11-08 23:26:57

标签: node.js mongodb express mean-stack mean.io

我尝试在nodeJs app中运行此查询

Book.find({'user._id': '545e2915cd91299447fdb8d7'}).populate('user').exec(function(err, books){...}

并且它不起作用(它返回空列表)但我尝试使用mongo在cmd中运行此查询并且它正在工作。有人可以帮帮我吗?

这是书的计划:

var mongoose = require('mongoose'),
    Schema = mongoose.Schema,
    path = require('path');

/**
 * Book Schema
 */
var BookSchema = new Schema({
    title: {
        type: String, 
        trim: true, 
        required: 'Title is missing'
    },
    created: { 
        type: Date, 
        default: Date.now 
    },
    user: {
        type: Schema.ObjectId,
        ref: 'User'
    }
 });

mongoose.model('Book', BookSchema);

1 个答案:

答案 0 :(得分:0)

最后我想出了问题所在。问题是我在mongo shell中手动创建了书籍,由于某些未知原因它无法正常工作但是当我在应用程序中持久保存书籍时,用户ID的查询正在运行。我不明白为什么(因为在mongo shell中输入并且在应用程序中持久存在时应该没有任何区别)但是它有效。