如何获取已经保存在其他相关模型中的信息……MongoDB,NodeJS

问题描述 投票:1回答:1

我真的很陌生,我想练习查询并尝试做一个非常不同的练习,但是没有达到我的预期。

我有三种型号:

const userSchema = new Schema({
 info1: String,
 info2: String,
},


 const serviceSchema = new Schema(
{
 name: String,
 legalOwner: {
   type: Schema.Types.ObjectId,
   ref: 'User',
 },
},


const orderSchema = new Schema(
{
 client: { type: Schema.Types.ObjectId, ref: 'User' },
 service: { type: Schema.Types.ObjectId, ref: 'Service' },
 description: String
},

我的用户可以像合法所有者或客户那样行事。我想显示用户以前设置为LegalOwner的信息。并且它已经保存在Mongo中,我如何访问该数据,是否有针对此的查询?我需要在我的模型订单中设置它吗?

 const orderSchema = new Schema(
  {
    client: { type: Schema.Types.ObjectId, ref: 'User' },
    service: { type: Schema.Types.ObjectId, ref: 'Service' },
    description: String,
    legalOwner: { type: Schema.Types.ObjectId, ref: 'Service' },

  },

我在此查询上做了很多尝试。但是什么都行不通...

 await Order.findById(id).populate('service')
javascript node.js mongodb express
1个回答
0
投票

据我所知,ObjectId作为_id存储在mongoDb中。

尝试一下

const query = { _id: new ObjectID(id)};

await Order.findOne(query).populate('service')

还从mongodb node_module导入ObjectID为

import { ObjectID } from 'mongodb';
© www.soinside.com 2019 - 2024. All rights reserved.