MongoDB - _id as String instead of ObjectId ? Relationship between collections or duplicate data? Scenario:
An entity called 'accessPoint' has an important attribute called 'network'. The application will display some parts of this network attribute, so I decided to store it inside accessPoint documents.
I also decided to store all networks documents (with additional attributes) in a separated collection (for performance reason: it will be used in an autocomplete input in the front end)
accessPoint: {
    id: ObjectId,
    name: String,
    uptime: Number,
    network: {
        subnet: String,
        netmask: Number
    }
}

network: {
    _id: ObjectId
    subnet: String,
    netmask: Number,
    size: Number,
    validatedAt: Date,
    attrX: String,
    attrY: String,
    attrZ: String
}

I have 3 major questions:
1 - Is it a good practice to store networks in a separated colletion? (attention to the requirement above)
2 - Is there any compliance/convention issues building a relationship between these two documents (like an SQL DBMS)?
3 - And, I was wondering... can I store _id as String instead of ObjectId?
I've read some advices, but I don't have a conclusive opinion about it.
e.g : ... network: { _id: &quot;192.168.1.0/24&quot; } (uniqueness guaranteed :D)
Thanks!
Is it a good practice to store networks in a separated colletion?
(attention to the requirement above)

It depends on your app and how do you use them, but I can say collection design is okay.

Is there any compliance/convention issues building a relationship
between these two documents (like an SQL DBMS)?

Generally, No-SQL databases don't use for relationship collections.

And, I was wondering... can I store _id as String instead of
ObjectId? I've read some advices, but I don't have a conclusive
opinion about it. e.g : ... network: { _id: &quot;192.168.1.0/24&quot; }
(uniqueness guaranteed :D)

Yes, you can. BTW, uniqueness guaranteed by mongodb. Because _id field has a unique index by default.
db.inspections.insert({ &quot;_id&quot;: &quot;192.168.1.0/24&quot;, &quot;test&quot;: 1 })